我想从NSDateComponents中获取绝对价值。
<NSDateComponents: 0x600000477c80>
Calendar Year: -1
我尝试了以下方法,但是我没有得到确切的值,如何从组件中获得值1。
NSDate *startDate = [formatter dateFromString:birthDate];
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [gregorianCalendar components:NSCalendarUnitYear
fromDate:startDate
toDate:today
options:0];
NSInteger year = [components year];
答案 0 :(得分:0)
如果要获取年份之间的日期差,则必须使用方法:calendar: fromDate: toDate:
如果您只想从日期中获取年份,则必须使用以下方法:calendar: fromDate:
。
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/MM/yyyy hh:mm:ss"];
NSDate *today = [NSDate date];
NSString *birthDate = @"04/06/1984 01:45:20";
NSDate *startDate = [formatter dateFromString:birthDate];
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
//NSDateComponents *components = [gregorianCalendar components:NSCalendarUnitYear fromDate:startDate toDate:today options:0]; //Option 1
NSDateComponents *components = [gregorianCalendar components:NSCalendarUnitYear fromDate:startDate]; // Option 2
NSInteger year = [components year];
NSLog(@"Years : %ld", year);
如果使用选项1的方法,则它将打印Years : 35
。
如果您使用选项2的方法,那么它将给出Years : 1984
。