Подтвердить что ты не робот

Есть ли веская причина хранить время не в UTC?

Мне интересно, есть ли веские причины когда-либо хранить информацию о времени в любом другом UTC (GMT)? Я считаю, что это твердое правило для всей разработки программного обеспечения. Преобразование в локальное время - это просто перевод, который происходит на уровне пользовательского интерфейса для отображения. Я также видел случаи, когда необходима пересылка, чтобы правильно реализовать алгоритм (для обработки изменений даты в полночь и т.д.).

4b9b3361

Ответ 1

В общем, я считаю, что лучше использовать UTC. Иногда вам может понадобиться местное время. Тогда я предпочел бы перейти с UTC + информация о часовом поясе.

В общем случае для повторяющихся событий время может быть чрезвычайно сложным, и вы должны очень тщательно проанализировать варианты использования.

Представьте себе повторяющуюся встречу каждый вторник в 9:00. Если DST изменится, встреча все равно должна состояться в (новом) 9:00 утра.

Но не стоит добавлять к встрече некоторых парней во Франции. Для них встреча в 6:00 вечера. И они меняют DST по другому правилу.

Когда вы меняете DST, они этого не делают, поэтому какое-то время (пока Франция не изменит DST) кто-то должен быть "выключен": либо ваша встреча будет в 10:00, а их встреча - в 6:00, либо держите вашу в 9:00 и перемещайте свою. в 5 вечера. Другого пути нет, компьютеры не имеют к этому никакого отношения.

Как приложение решит, кого следует "исправить"? Это группа с большинством членов? (1 парень в США против 20 во Франции?) Или речь идет о важности человека? (что, если 1 человек в США является генеральным директором?)

Как вы храните эту информацию? Мое лучшее решение - использовать UTC + один "главный часовой пояс". Пользователи в "главном часовом поясе" выигрывают (остаются фиксированными).

Все может быть довольно сложно, но в целом я обнаружил, что UTC решает больше проблем, чем представляет.


Чтобы уточнить (очень fjsj :-) пункт из fjsj: под "основным часовым поясом" я имею в виду точную зону, включая информацию о летнем времени, активном или нет.

Если вы просто храните PT (Pacific Time), то этого недостаточно. PST (тихоокеанское стандартное время) или PDT (тихоокеанское летнее время).

Вероятно, даже лучше не думать о повторяющихся встречах как о "фиксированном моменте времени", выраженном в секундах/миллисекундах от "эпохи". Языки программирования (наконец-то) начали использовать концепции JodaTime.

Ответ 2

Я бы сказал, что это зависит от приложения. Я работаю над космическими физическими моделями ионосферы и магнитосферы. Мы работаем с магнитным локальным временем, сохраняя дату и время как Измененные юлианские дни.

Ответ 3

Тревоги и запланированные задачи иногда сохраняются в локальное время, так что они не влияют на переход на летнее время или изменение часового пояса.

Ответ 4

UTC является стандартом учета времени, который обладает точностью и точностью TAI, но с добавлением дополнительных секунд с нерегулярными интервалами, чтобы позволить ему точно отслеживать среднее солнечное время (UT1).

Если система, с которой вы работаете, не может обрабатывать високосные секунды, то Бюро Международных Прав и Мезур рекомендует использовать TAI вместо UTC.

Смотрите: http://tycho.usno.navy.mil/leapsec.html

Ответ 5

Когда-либо? Я уверен, что в некоторых отдельных случаях есть веские причины. В общем, хранение UTC намного лучше, чем по местному времени, поэтому я бы рассматривал UTC как позицию по умолчанию, если не было особого внимания.

Ответ 6

Во встроенной системе вы можете получить время от источника в виде "тиков прошлой эпохи".

Если время обновляется относительно часто и отображается относительно редко, тогда вы можете сохранить его так же, как он был предоставлен вам, и только конвертировать его для отображения при необходимости.

В общем, UTC - это путь, если нет других соображений.

Ответ 7

Если вы уверены, что будет использоваться только локальное время.