Я попытаюсь объяснить мою цель, чего я пытаюсь достичь и почему у меня ничего не получается
Мне нужно хранить DATETIME в таблице MYSQL. Клиент должен иметь возможность получить этот DATETIME двумя способами:
- если дата1 2011-07-12 00:00:00 была добавлена пользователем 1 с часовым поясом UTC + 2, а затем пользователь 2 с часовым поясом UTC-3 получает это значение, он должен получить datetime 2011-07-11 19 : 00: 00. DST здесь важен.
- , если user1 добавил дату / время 2011-07-12 00:00:00, user2 получает точно такую же дату
вот и все, мне больше ничего не нужно. но я не могу найти способ, как это сделать ...
Я придумал, чтобы хранить дату в часовом поясе user1, что позволяет вообще не выполнять никаких преобразований при использовании 2-го метода. проблема с 1-м методом. Я думаю, я мог бы использовать функцию CONVERT_TZ (), но что я должен использовать в качестве параметра часового пояса? этот список часовых поясов в таблице mysql.time_zone_name, по моему мнению, является полным беспорядком. практично ли позволить пользователю выбирать свой часовой пояс из этого грязного списка? Например, что я должен использовать: Европа / Варшава или Польша? Если я живу в городе Клайпеда (Европа, Литва), то очевидно ли, что я должен выбрать часовой пояс Европа / Вильнюс? Почему эти имена такие сложные? Может быть, есть другие таблицы MySQL, которые используют как-то стандартизированные имена, такие как UTC + 02: 00 шириной DST и без, как в ОС wondows (грустно, у меня нет шансов сравнить с другими ОС)? Я мог бы использовать смещение часового пояса "+02: 00", как задокументировано, но тогда информация о летнем времени не сохраняется. а может есть способы автоматического определения часового пояса пользователя?
Надеюсь, я ясно дал понять. Помощь и любой совет очень ценится.
[ отредактировано (ответ на Flimzy )]
Если мне всегда нужно конвертировать в дату для пользователей (клиентов), я согласен, что лучше всего использовать UTC. Но что, если один пользователь вводит DATETIME 2011.11.12 00:00:00, а другой пользователь должен видеть точно такое же время, а его часовые пояса не совпадают, что тогда? Поэтому я решил вообще не преобразовывать дату при сохранении и сохранении часового пояса вместе. Это моя проблема. Как определить часовой пояс клиента автоматически? Или как сделать названия часовых поясов не такими запутанными? Этот параметр очень важен для моего приложения, и поэтому я не хочу позволять пользователю настраивать его, но если нет способа сделать это, я хочу, чтобы этот список часовых поясов был максимально четким.