当前位置: 首页 > 科技观察

iOS开发中的时间处理问题

时间:2023-03-14 17:29:02 科技观察

开发中经常会遇到时间处理。一般可以获取具体的年、月、日、周,两个不同时间的差值,某一天的前一天或后一天等;这里我只介绍如何获取具体的年、月、日、周,以及某天的前一天或后一天的方法。时间的处理一般使用两个类,NSDate类和NSCalendar类。获取当前时间为:NSDate*nowDate=[NSDatedate];获取具体的年月日是nowDate的处理;一般使用NSCalendar类,首先是NSCalendar的声明,然后是属性的设置,其中属性是[calendarcomponents:(...)];很重要;设置属性后,可以根据方法获取年月日,如intnowYear=[compsyear];要得到星期,你必须先得到intnowWeek=[compsweekday];然后对nowweek的值进行判断,该值是从1到7,对应的周是星期日到星期六。代码如下:NSDate*nowDate=[NSDatedate];//这是当前时间。事实上,它可以是这里的任何时间。)fromDate:nowDate];intnowYear=[compsyear];intnowMonth=[compsmonth];intnowDay=[compsday];intnowWeek=[compsweekday];NSString*weekStr=[[NSStringalloc]init];switch(nowWeek){case1:weekStr=@"Sunday";break;case2:weekStr=@"Monday";break;case3:weekStr=@"Tuesday";break;case4:weekStr=@"Wednesday";break;case5:weekStr=@"Thursday";break;case6:weekStr=@"Friday";break;case7:weekStr=@"Saturday";break;default:break;}NSLog(@"Year:%d;Month:%d;Day:%d;%@",现在年,现在月,现在日,weekStr);某天的前一天或后一天的方法:这里使用NSCalendar,先设置属性,同上;使用的最重要的方法是[compssetHour:+24];+24表示获取第二天,-24表示获取前一天;还有[compssetMinute:0]和[compssetSecond:0];***将日历转换为NSdate;方法如下:NSDate*nowDate=[calendardateByAddingComponents:compstoDate:showDateoptions:0];//showDate表示某一天的日期,nowDate表示showDate的前一天或后一天的日期代码如下:NSCalendar*calendar=[NSCalendarcurrentCalendar];NSDateComponents*comps;comps=[calendarcomponents:(NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit)fromDate:[[NSDatealloc]init]];[compssetHour:+24];//+24表示获取第二天的日期,-24表示获取日期前一天的日期;[compssetMinute:0];[compssetSecond:0];NSDate*nowDate=[calendardateByAddingComponents:compstoDate:showDateoptions:0];//showDate表示某一天的日期,nowDate表示前一天的日期或演出日期的第二天