• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

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

objective-c 来源:donttellunclesam 6次浏览

我使用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]; 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)