Как хранить дату в формате UTC и в местном часовом поясе

Каков практический способ хранения даты и времени, чтобы я мог позволить пользователям просматривать / запрашивать данные по их собственному локальному времени, сохраняя при этом информацию об исходной дате и времени.

В основном, пользователи хотят иметь возможность запрашивать (по своему местному времени) данные, собранные из систем в различных часовых поясах. Но иногда они хотят знать, что данные были созданы, скажем, в 18:00 в исходной системе. Это помогает, когда пользователи из разных уголков мира рассказывают об одном и том же событии.

User1: What? We don't have any data for 20:00
User2: Dude, it says 20:00 right there on my screen.
User1: Wait, what timezone are you? What's the UTC-time?
User2: What is UTC? Is that something with computers?
User1: OMFG! *click*

Мне нужен совет, как хранить данные.

Я ' Я думаю о том, чтобы сохранить все даты в формате UTC и добавить дополнительный столбец, содержащий исходное имя часового пояса, в форме, которая позволяет мне использовать mysql CONVERT_TZ или его аналог на Java. Затем приложение преобразует даты, введенные пользователем, в UTC, и я могу легко запросить базу данных. Все даты также могут быть легко преобразованы в местное время пользователя в приложении. Используя исходный столбец часового пояса, я также смог бы отобразить исходное datetime.

Однако это означает, что для каждого имеющегося у меня datetime мне нужен дополнительный столбец ...

start_time_utc datetime
start_time_tz  varchar(64)
end_time_utc   datetime
end_time_tz    varchar(64)

Я на правильном пути?

Поделится ли кто-нибудь, кто работал с такими данными, своим опытом?

(Я буду использовать MySQL 5.5 CE)

Обновление 1

Данные будут доставлены в файлах xml, где каждая запись имеет дату и время в некоторых местный часовой пояс. Таким образом, будет только один процесс вставки, работающий в одном месте.

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

7
задан fedorqui 16 April 2013 в 15:01
поделиться