Я работаю над приложением, в котором хранятся конференции с указанием даты их начала и окончания. До сих пор я работал в Бельгии, а мой сервер во Франции, поэтому все в одном часовом поясе, никаких проблем. Но сегодня я в Сан-Франциско, мой сервер находится во Франции, и я заметил, что у меня ошибка.
Я устанавливаю даты из клиента Flex (ActionScript автоматически настраивает отображение даты в соответствии с локальным часовым поясом клиента, для меня сегодня GMT-8. Мой сервер работает на Hibernate и MySQL во Франции (GMT + 1). Я просматриваю свою базу данных с помощью phpMyAdmin, вижу дату, установленную на «2010-06-07 00:00:01», но в моем клиенте Flex отображается «2010-06-06 15:00:01».
В конечном счете, я хочу, чтобы даты отображались в местном часовом поясе события, то есть в дате, которую я установил. Поэтому, когда я нахожусь в Бельгии, и я установил дату начала события «2010-06-07 00:00:01», я хочу получить его таким образом.
Но я заблудился относительно того, что слой адаптируется к чему. Хранится ли часовой пояс в столбцах DATETIME MySQL (я не вижу его в MySQL)? Относится ли Hibernate к чему-либо, когда он передает его на java.lang.Date, в котором есть информация о часовом поясе? И в конечном итоге, как лучше всего решить эту проблему?