这可能是愚蠢但我无法找到它发生的原因,我试图计算两个日期之间的差异:
- (long)daysBetween:(NSDate *)dt1 and:(NSDate *)dt2
{
NSUInteger unitFlags = NSCalendarUnitDay;
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [calendar components:unitFlags fromDate:dt1 toDate:dt2 options:0];
return [components day]+1;
}
用它来表示:
NSLog(@"%@ %@,%ld",currentdate,starteddate,[self daysBetween:starteddate and:currentdate]);
return [self daysBetween:starteddate and:currentdate];
在日志上,对于相同的日期,有时它有时会返回7,为什么?
记录2个不同的电话:
2015-07-07 09:54:33 +0000 2015-06-30 09:54:33 +0000,7
2015-07-07 09:54:33 +0000 2015-06-30 09:54:33 +0000,8
对于完全相同的4个日期,我得到不同的结果,如你所见 - 7和8 ...
答案 0 :(得分:2)
我曾遇到过同样的问题。在设置时区时解决了 -
在将日期传递给此函数之前设置时区
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];