我使用此代码比较两个日期并返回天数差异。我想使用它并得到分钟和小时数,但我得到相同的数字。
NSDate *todaysDate =[NSDate date];
NSDate *eventDate = [self.event objectForKey:@"eventDate"];
NSDateComponents *components = [[NSCalendar currentCalendar] components: NSDayCalendarUnit
fromDate: todaysDate toDate: eventDate options: 0];
NSInteger days = [components day];
NSInteger hours = [components hour];
NSLog(@"Number of days %ld", days);
NSLog(@"Number of hours %ld", hours);
eventDate以此格式" 2014-08-08 13:11:00 + 0000"
我总是得到的小时或分钟数是" 9223372036854775807"。
答案 0 :(得分:0)
如果在编程计算器中输入“9223372036854775807”十进制值并将其转换为十六进制,则得到0x7FFFFFFFFFFFFFFF。这可能是NSUndefinedDateComponent常量,这意味着NSDateComponents对象没有请求的字段,因为在创建NSDateComponent时没有使用NSHourCalendarUnit和NSMinuteCalendarUnit请求它们。只会初始化您在“components:”参数中指定的那些字段。 days字段应包含正确的值。要获得小时和分钟,您需要更改此行:
NSDateComponents *components = [[NSCalendar currentCalendar] components: NSDayCalendarUnit
| NSHourCalendarUnit | NSMinuteCalendarUnit
fromDate: todaysDate toDate: eventDate options:
0];