В високосный год [NSDate date]
возвращает 2012-03-01 HH:MM:SS +TTTT
.
В stackoverflow я часто видел сообщения, в которых сегодняшняя дата получается простым вызовом [NSDate date]
.Проблема в том, что в високосный год это не вернет правильную дату.Теперь я понимаю, что високосный год на самом деле является функцией календарной системы, поэтому имеет смысл, что NSDate
не будет распознавать високосный год (или летнее время в этом отношении).Однако это может привести к разрушению кода - например:
скажем, что вы назначаете дату изменения файла, выполняя:
// assume today's date is 2012-02-29 10:00:00 +0000
NSDate *fileModificationDate = [NSDate date]; // 2012-03-01 10:00:00 +0000 is returned
Затем в какой-то момент в будущем вы сделаетеСравнение, чтобы увидеть, когда файл был последний раз изменен:
// assume it's the next day at 9 AM, ie 2012-03-01 09:00 +0000
NSTimeInterval timeSinceLastModification = [fileModificationDate timeIntervalSinceNow];
Возвращенный timeSinceLasModification
будет положительным, означая время в будущем, которое не имеет смысла!
Мои вопросы: естьна самом деле плохая практика использовать [NSDate date]
для получения текущей даты?Я что-то упустил здесь?
Извините за длинный вопрос ...