日历(NSCalendar) 与日期组件(NSDateComponents)
1.(NSDateCOmponents *)components: fromDate:从NSDate提取年、月、日、时、分、秒个时间字段的信息
2.dateFromComponents:(NSDateComponents*) cpmps: 使用comps对象包含的年、月、日、是、分、秒个时间段字段的信息创建NSDate
NSDateComponents,专门用于封装年、月、日、时、分、秒。只包含了 year/mpnth/date/day/hour/minute second week weekday等个字段的setter和getter方法
NSDate 对象中分开获取各时间字段数值步骤:
1、创建NSCalendar
2.调用NSDateComponentsfromDate;返回一个NSDateComponents对象
3.调用NSDateComponents对象的getter方法来获取个时间段字段的数值
使用各时间字段的数值初始化NSDate:
1,创建NSCalendar对象
2.穿件一个NSDateCompinents对象,调用该对象的setter方法来设置个时间字段的值
3.调用NSCalendar的dateFromComponents:(NSDateComponents*)初始化NSDate对象,该方法将返回一个NSDate对象
NSCalendar *gregorian=[[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
//定义一个时间字段的旗标
unsigned unitFlags=NSYearCalendarUnit|
NSMonthCalendarUnit |NSDayCalendarUnit|
NSHourCalendarUnit|NSMinuteCalendarUnit|
NSSecondCalendarUnit |NSWeekdayCalendarUnit;
//获取不同时间字段的信息
NSDate* dt=[[NSDate date];
NSDateComponents* comp=[gregorian components:unitFlags fromDate:dt];
//获取各时间字段的数值
comp.year//年
comp.weekday//星期
NSDateComponents* comp2=[[NSDateComponents alloc]init];//设置
comp2.year=2014;
comp2.day=12;
comp2.month=3;
NSDate* date=[gregorian dateFromComponents:comp2];//利用components来重置NSDate
NSLog(@"%@",date);
网友评论