Как правильно работать с часовым поясом?

Я много читаю очасовой пояс, смещение, универсальное глобальное время, местное время, функции 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 класс?

3º Как перевести в местное время?

Безопасно ли конвертировать данные на клиенте? Или преобразования даты должны быть всегда на стороне сервера?

4º О ДСТ.

Используя мой текущий подход. Будет ли соблюдаться DST?

Ответы на вопрос(2)

Ваш ответ на вопрос