1

在将它发布到这里之前,我已经用谷歌搜索了这个问题。我没有找到特定于我的问题的解决方案,所以我开始了。请原谅我,如果做得不对。

我正在使用 Java、JSP、Tomcat 和 Oracle 9i/10g。

我有现有的数据库,其中存储了本地时间的数据。例如,如果表是“约会”,那么所有计划日期、创建日期和更改日期 - 数据都存储在数据库中,其中“日期 dt = new java.util.Date();” 和 SQL 语句“INSERT into Appointment (Scheduled Date, Created Date, Changed Date) 值 (?,?,?)”

Date dt = new java.util.Date();
...
String query ="INSERT into Appointment (Scheduled Date, Created Date, Changed Date) values (?,?,?)";
...
pstmt.setDate(1, users_browser_selected_date);
pstmt.setDate(2, dt);
pstmt.setDate(3, dt);
......

代码仅供说明。请忽略任何代码/逻辑错误...

此时数据已使用上述代码存储。意味着它的存储本地时间。此时我不允许更改数据。(我知道最好的做法是使用 UTC 格式来存储数据。但此时进行更改为时已晚。)

现在用户可以在任何时区使用 Web 应用程序,如果用户从他/她的浏览器中根据时间对数据进行搜索操作,那么数据需要准确和一致。

有没有一种方法可以做到这一点,而无需接触我的数据库?可以进行哪些更改以在浏览器的搜索表单上显示日期?在对数据库执行 Java 代码中的搜索查询时可以进行哪些更改?

如果您可以提供一些步骤,这将很有帮助。

太感谢了。

4

1 回答 1

0

以 UTC 格式将日期存储在数据库中,根据区域设置转换为每个客户端的本地时区。

于 2013-10-02T13:04:05.910 回答