Я завладел системой, которая отправляет сообщения. Дата отправки сообщения - TIMESTAMP(14)
в MySQL. Сообщения могут быть запланированы для отправки в будущем.
Система базируется в Великобритании, где часовыми поясами являются GMT или BST (GMT + 1), в зависимости от времени года.
В существующем коде система устанавливает текущий часовой пояс в MySQL, используя SET time_zone
. Прямо сейчас часовой пояс - BST, и в результате при запросе отправленных дат, скажем, января, когда часовой пояс был по Гринвичу, результаты показываются как один час, однако даты для сообщений, отправленных в апреле, отображаются правильно.
Если я удаляю команду SET time_zone
, обе даты отображаются правильно, однако я полагаю, что если (во время BST) они запланируют отправку сообщения в ноябре (который снова будет по Гринвичу), то в конечном итоге сообщения будут отправлено на один час раньше, но я не уверен, как это проверить и / или подтвердить (кроме ожидания изменения часовых поясов).
Как мне лучше всего справиться с обеими ситуациями, получая (отображая) даты и устанавливая даты (отправляющие) правильно для прошлых, текущих и будущих сообщений?