Как правильно работать с часовым поясом?
Я много читаю очасовой пояс, смещение, универсальное глобальное время, местное время, функции JavaScript, DST, бекон и я пытаюсь собрать все это вместе, чтобы создать прочную / правильную структуру для моего приложения.
Предположим, что мое приложение похоже на StackOverflow.
Вот как я делаю ...
Сервер находится в другой стране, поэтому я установил его на UTC 00:00.Я храню дату какDateTimeOffset
.яне храненияTimeZoneID
.Дата отправляется клиенту в следующем формате:2012-07-19T14:30:00-03:00
.Я использую угловой фильтр, чтобы преобразовать его в местное время.У меня есть несколько вопросов об этом ...
1º Сервер TimeZone?О моем сервере (одном сервере) ... должен ли он работать с "нейтральным" UTC (+00: 00)? А что если в будущем мы перейдем на ферму, где серверы будут работать в разных местах?
2º Что я должен хранить?В настоящее время я храню только дату какDateTimeOffset
, Я читаю о сохраненииTimeZoneID
но я не вижу никакой пользы для этого. Я что-то пропустил?
Или я должен хранить дату какDateTimeUtc
сTimeZoneID
и вручную конвертировать каждую дату сTimeZone
класс?
Безопасно ли конвертировать данные на клиенте? Или преобразования даты должны быть всегда на стороне сервера?
4º О ДСТ.Используя мой текущий подход. Будет ли соблюдаться DST?