Я рассчитываю время продолжительности между startTime и endTime и использую следующий код, чтобы получить временной интервал между двумя NSDates
NSTimeInterval duration = [self.endTime timeIntervalSinceDate:self.startTime];
NSLog(@"interval: %f", duration);
Однако оператор NSLog говорит мне, что продолжительность неверна. Даты получены из datePicker. Например, когда я установил дату начала на 19 июня 2013 г., 21:15, а дату окончания — на 19 июня 2013 г., 9:16 вечера (на одну минуту позже), зарегистрированная продолжительность составляет 15,00000 вместо 60,00000.
Почему это? Как я могу получить правильную продолжительность между двумя датами?
ИЗМЕНИТЬ
Я сделал еще несколько записей и записал дату начала и время окончания. Вот заявление NSLog
NSLog(@"interval: %f for %@ to %@", duration, self.startTime, self.endTime);
и вот что регистрируется:
interval: 15.000000 for 2013-06-19 04:52:45 +0000 to 2013-06-19 04:53:00 +0000
По какой-то причине дата начала из datePicker устанавливает секунды на 45, хотя средство выбора даты просто говорит 4:52. Как я могу это исправить?
Кроме того, в качестве примечания, один и тот же datePicker используется для выбора обеих дат, если это вообще имеет значение.