Как сохранить точное время (летнее время) для веб-приложения?

StackOverflow https://stackoverflow.com/questions/1627668

  •  06-07-2019
  •  | 
  •  

Вопрос

Хорошо, это может быть простой вопрос, но мне еще предстоит найти рабочее решение, поэтому всем, кто может помочь, заранее спасибо.

Рассмотрим следующий сценарий: у нас есть веб-приложение, работающее на MySQL (если вам нужно знать), которое зависит от времени, например, приложение, которое отправляет электронное письмо в указанное пользователем время. Теперь каждый пользователь установил свой часовой пояс / город, и серверы работают на UTC для простоты. Точное время будет временем сервера + часовой пояс + летнее время. Пользователь хочет, чтобы электронное письмо пришло к нему 4 января 2010 года в 17:00 его времени Мой вопрос будет, как получить правильное летнее время? Имеется в виду, находится ли этот пользователь в регионе, который наблюдает летнее время, если он или она это наблюдали или еще нет?

Моим первым импульсом было бы найти веб-сервис, который, учитывая текущий часовой пояс / город, обеспечил бы вам надлежащее летнее время. Пока я не нашел ни одного. Меня обескураживает вторая идея, что я должен устанавливать правила для летнего времени, поскольку они меняются из года в год, а в некоторых странах более чем на день или два.

Любая помощь очень ценится.

Это было полезно?

Решение

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

Другие советы

Сохраняйте свои даты в секундах с 1 января 1970 года по Гринвичу в своей базе данных, и у вас всегда будет время, необходимое для обработки. Когда пользователь введет свое время, преобразуйте его соответствующим образом, используя правильные настройки часового пояса, и все готово.

Ваши серверы уже работают без часовых поясов, поэтому, когда придет время, их легко выбрать.

Вот некоторый код для преобразования часовых поясов в LISP:

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top