NSDateComponents不打印准确的日/月/年时间

NSDateComponents不打印准确的日/月/年时间

问题描述:

我使用NSDateComponents分别获取每日,每月,每年,每小时,每分钟等,但日,月,年和秒不准确2017年11月08日1:00:00 ....有人知道我错过了什么吗?NSDateComponents不打印准确的日/月/年时间

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
     [dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"]; 
     NSDate *date = [dateFormatter dateFromString:@"2017-11-08 1:00:00"]; 
     NSCalendar *calendar = [NSCalendar currentCalendar]; 
     NSDateComponents *components = [calendar components:(NSCalendarUnitHour | NSCalendarUnitMinute) fromDate:date]; 
     NSInteger day = [components day]; 
     NSInteger month = [components month]; 
     NSInteger year = [components year]; 
     NSInteger hour = [components hour]; 
     NSInteger minute = [components minute]; 
     NSInteger second = [components second]; 
     NSLog(@"day: %ld",(long)day); 
     NSLog(@"month: %ld",(long)month); 
     NSLog(@"year: %ld",(long)year); 
     NSLog(@"hour: %ld",(long)hour); 
     NSLog(@"minute: %ld",(long)minute); 
     NSLog(@"second: %ld",(long)second); 

输出:

 day: 2147483647 
     month: 2147483647 
     year: 2147483647 
     hour: 1 
     minute: 0 
     second: 2147483647 

你只是得到小时和分钟,因为这是所有你问的。如果你真的要求日,月,年和秒,你会得到它们:

NSCalendarUnit units = NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear | 
         NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond; 
NSDateComponents *components = [calendar components:units fromDate:date];