2012-01-09 117 views
2

我正在使用GWT/Hibernate。我有一個使用GWT創建的表單。它有一個日期字段,用戶可以在其中顯示所有時區的日期和一個下拉列表。現在用戶從下拉菜單中選擇日期和時區。點擊保存按鈕,我需要保存日期和時區信息。此外,如果服務器配置爲格林威治標準時間,如果用戶選擇了任何其他時區,則應將其保存爲用戶選擇的時區信息。當我嘗試查詢相同的那麼它應該返回我與用戶選擇時區的日期。請告訴我實施它的最佳方式是什麼?我應該分別在數據庫中的日期和時區列嗎?我需要哪種格式來保存時區信息?請幫幫我。如何在數據庫中保存時區信息?

謝謝!

+0

是否http://stackoverflow.com/questions/2532729/daylight-saving-time-and-timezone-best-practices提供任何幫助? – Mark 2012-01-09 14:40:01

+0

看看這個[教程](http://www.sjhannah.com/blog/?p=113),你會有更好的理解。 – 2012-01-09 14:41:07

回答

3

某些數據庫的類型包括時區信息(例如Oracle具有TIMESTAMP WITH TIME ZONE)。儘可能使用這些。否則,請將所有日期另存爲GMT和時區。

至於時區的格式,最好使用來自tz database的ID,這些是Java的時區ID基於的。 「America/New_York」或「Europe/London」。這些ID唯一標識(不像三個字母的時區名稱通常具有多重含義)管理時區及其歷史記錄(包括DST引入/取消和更改) - 所有這些都可能是正確解釋日期所必需的。