如何在数据库中保存时区信息?

时间:2012-01-09 14:34:24

标签: java gwt

我正在使用GWT / Hibernate。我有一个使用GWT创建的表单。它有一个日期字段,用户可以在其中选择日期,一个下拉列表显示所有时区。现在用户从下拉列表中选择日期和时区。点击保存按钮我需要保存日期和时区信息。此外,如果在GMT中配置服务器,如果用户选择了任何其他时区,则应将其保存为用户选择的时区信息。当我尝试查询相同时,它应该返回用户选择的时区的日期。请告诉我实施它的最佳方法是什么?我应该在db中分别有日期和时区列吗?我需要以哪种格式保存时区信息?请帮帮我。

谢谢!

1 个答案:

答案 0 :(得分:3)

某些数据库具有包含时区信息的类型(例如,Oracle具有TIMESTAMP WITH TIME ZONE)。尽可能使用它们。否则,分别保存GMT和时区中的所有日期。

至于时区的格式,最好使用tz database中的ID,这些ID是Java的时区ID所基于的,例如“America / New_York”或“Europe / London”。这些ID唯一地标识(不同于通常具有多种含义的三个字母的时区名称)管理时区及其历史(包括DST内插/废除和更改) - 所有这些都是正确解释日期所必需的。