Ios 从NSDateComponents获取意外输出

Ios 从NSDateComponents获取意外输出,ios,nsdate,Ios,Nsdate,比较两个日期(currentDate和\u timerStartDate)后,我得到以下输出 nstimeinterval: 88.998212 2014-05-14 14:07:08.284 currentDate: 14-05-2014 14:07:08 2014-05-14 14:07:08.284 stopDate: 14-05-2014 14:05:39 2014-05-14 14:07:08.284 hour: 10 这是正确的,也是意料之中的。然而,当我中断时间记录时,我从

比较两个日期(
currentDate
\u timerStartDate
)后,我得到以下输出

nstimeinterval: 88.998212
2014-05-14 14:07:08.284  currentDate: 14-05-2014 14:07:08
2014-05-14 14:07:08.284  stopDate: 14-05-2014 14:05:39
2014-05-14 14:07:08.284  hour: 10
这是正确的,也是意料之中的。然而,当我中断时间记录时,我从NSLog中得到10个小时……我预计零。我做错了什么

这是我的密码:

NSDate *currentDate = [NSDate date];
NSTimeInterval timeInterval = [currentDate timeIntervalSinceDate:_timerStartDate];
NSDate *timerDate = [NSDate dateWithTimeIntervalSince1970:timeInterval];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"mm:ss"];
NSString *timeString=[dateFormatter stringFromDate:timerDate];


NSLog(@"nstimeinterval: %f", timeInterval);

[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm:ss"];

NSLog(@"currentDate: %@", [dateFormatter stringFromDate:currentDate]);
NSLog(@"stopDate: %@", [dateFormatter stringFromDate:_timerStartDate]);


NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components: ( NSHourCalendarUnit | NSYearCalendarUnit) fromDate:timerDate];
NSLog(@"year: %li", (long)components.year);


NSLog(@"timer: %@", timeString);

timerTicksForCounter = timeString;

NSLog(@"hour: %li", (long)components.hour);

你到底想做什么?要用两个日期之间经过的时间填充一个
NSDateComponents
?在这种情况下,您可能需要
-[NSCalendar components:fromDate:toDate:options://code>,起始日期是开始日期,截止日期是停止时的当前日期。同时,您似乎正在进行大量复杂且可能不必要的日期混合。

您似乎对其中一些API的意图感到困惑。如果您只想量化两个日期之间的差异,可以使用la:
[calendar components:NSCalendarUnitHour fromDate:\u timerStartDate-toDate:currentDate选项:0]