Различия между датой и часовым поясом

9

Существует несколько вариантов обработки часового пояса, часового пояса сайта, времени в дате, часового пояса пользователя, UTC и без преобразования часового пояса. Каковы различия между ними?

Одним из случаев будет телевизионное вещание, где все в мире будут одновременно. Будет ли часовой пояс пользователя правильным? Если вещатель выходит в 8:00 вечера, живя в Нью-Йорке, кто-то в Калифорнии испытает это в 5:00 вечера.

Или, например, в Нью-Йорке происходит поэтический стук, и любому, кто захочет испытать это, придется физически присутствовать там в 20:00, то есть в Калифорнии это может произойти в 17:00, но это не имеет значения для человек в Калифорнии. Важно то, что они находятся в Нью-Йорке в 8:00 вечера, поэтому время не должно меняться, независимо от того, где находится пользователь или в какое время в его часовом поясе происходит поэтический удар.

Адам С
источник

Ответы:

13

В странице документации модуля Дейта описывает разницу между 5 вариантов достаточно хорошо.

С этой страницы:

Для обработки часового пояса существует 5 различных вариантов:

  1. Часовой пояс сайта - при вводе данных в поле предполагается, что введенные данные находятся в часовом поясе сайта. Когда данные сохраняются в базе данных, они преобразуются в UTC. При извлечении из базы данных данные преобразуются в часовой пояс Сайта для анонимных пользователей или часовой пояс Пользователя для зарегистрированных пользователей, если включены настраиваемые часовые пояса.
  2. Часовой пояс даты - если этот параметр включен, поле даты добавляет поле выбора, чтобы явно указать часовой пояс для введенной даты. Когда дата сохраняется в базе данных, она не преобразуется, а информация о часовом поясе сохраняется вместе с датой. При извлечении из базы данных преобразование не выполняется, и дата отображается точно в том виде, в котором она была введена.
  3. Часовой пояс пользователя - при вводе данных в поле предполагается, что введенные данные находятся в часовом поясе пользователя. Когда данные сохраняются в базе данных, они преобразуются в UTC. При извлечении из базы данных данные преобразуются в часовой пояс Сайта для анонимных пользователей или часовой пояс Пользователя для зарегистрированных пользователей, если включены настраиваемые часовые пояса.
  4. UTC - при вводе данных в поле предполагается, что введенные данные находятся в часовом поясе UTC. Когда данные сохраняются в базе данных, они преобразуются в UTC (например, преобразование не требуется). При извлечении из базы данных данные преобразуются в часовой пояс Сайта для анонимных пользователей или часовой пояс Пользователя для зарегистрированных пользователей, если включены настраиваемые часовые пояса.
  5. Без преобразования часового пояса - введенная дата не преобразуется при сохранении в базе данных. При извлечении из базы данных данные НЕ конвертируются и отображаются в точности так, как они были введены.
jhedstrom
источник