Après avoir comparé deux dates (currentDate
et _timerStartDate
) Je reçois la sortie suivanteObtention d'une sortie inattendue de NSDateComponents
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
Cela est correct et attendu. Cependant quand je casse timerDate
je reçois 10 heures de la NSLog ... Je m'attends à zéro. Qu'est-ce que je fais mal?
Voici mon code:
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);
Vous semblez être confus au sujet de l'intention de certaines de ces API. Si tout ce que vous voulez est de quantifier la différence entre deux dates, vous pouvez utiliser la méthode 'components: fromDate: toDate: options:', un la: '[composants calendrier: NSCalendarUnitHour fromDate: _timerStartDate toDate: options currentDate: 0];' – warrenm