NSDate的NSDateComponents

cfi*_*her 25 cocoa objective-c nsdate nsdatecomponents

如何获得单个NSDate的NSDateComponents?我不想要两个日期之间的差异组件,只是NSDate的秒,分,小时,日,月和年?

mar*_*ton 42

Apple文档中有一个示例,清单3:获取日期的组件:

NSDate *today = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc]
                         initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *weekdayComponents =
                    [gregorian components:(NSDayCalendarUnit | 
                                           NSWeekdayCalendarUnit) fromDate:today];
NSInteger day = [weekdayComponents day];
NSInteger weekday = [weekdayComponents weekday];
Run Code Online (Sandbox Code Playgroud)

请注意,您必须在方法调用中将所需的日历单元 "或"放在一起components.


Gra*_*yer 8

使用NSCalendar的方法:

- (NSDateComponents *)components:(NSUInteger)unitFlags fromDate:(NSDate *)date

喜欢:

unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit;
NSDate *date = [NSDate date];


NSCalendar * cal = [NSCalendar currentCalendar];
NSDateComponents *comps = [cal components:unitFlags fromDate:date];
Run Code Online (Sandbox Code Playgroud)