У меня был этот вопрос в течение длительного времени. Проблема заключается в следующем: большинство SQL-серверов, с которыми я работал (а именно MySQL), не хранят информацию о часовом поясе с датами, поэтому я предполагаю, что они просто хранят даты относительно местного часового пояса сервера. Это создает интересную проблему в случае, когда мне придется переносить серверы в разные часовые пояса, или если я создаю кластер с серверами, распределенными по разным центрам данных, или если мне нужно правильно перевести дату / время в локальные значения.
Например, если я сохраняю дату типа 2011-08-12 12:00:00 GMT-7
, она сохраняется как 2011-08-12 12:00:00
. Если у меня есть событие, которое происходит по всему миру в определенное время, я должен предположить, что мой сервер хранит даты в GMT-0700 (давайте даже не добавлять летнее время в микс), а затем преобразовать их в даты в зависимости от каждого местный часовой пояс пользователя. Если у меня есть несколько серверов, хранящих даты в своих часовых поясах, все это с треском проваливается.
Для таких сред, как Hibernate и Django, как они решают эту проблему, если вообще? Я что-то упустил или это серьезная проблема?