NSDateComponents
NSDateComponents将时间表示成适合人类阅读和使用的方式, 首先要遵循某种历法
NSCalendar * cal = [NSCalendar currentCalendar];
有三种用法:
1.获取某个时间点的NSDateComponents表示
unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit
| NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents * Comps = [cal components:unitFlags fromDate:[NSDate date]];
可获取到comps.year, comps.mouth , comps.weekday(周几), dateComponents.week(该年第几周)
2.定义一个NSDateComponents对象,设置一个时间点
NSDateComponents *Comps = [[NSDateComponents alloc] init];
[Comps setDay:6];
[Comps setMonth:5];
[Comps setYear:2004];
NSDate* date = [[NSCalendar currentCalendar] dateFromComponents:Comps];
// 定义一个NSDateComponents对象,设置一个时间段
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:6]; // 在当前历法下,获取6天后的时间点
NSDate *dateLater = [cal dateByAddingComponents:comps toDate:[NSDate date] options:0];
3.获取两个时间点的时差
NSDateComponents *dateComponents = [greCalendar components:NSYearCalendarUnit fromDate:[NSDate dateWithTimeIntervalSince1970:0] toDate:[NSDate date] options:0];
NSLog(@"%d", dateComponents.year);