在发布到这里之前,我已经用谷歌搜索了这个问题。我没有找到特定于我的问题的解决方案,所以我来了。请原谅我,如果做得不对。
我正在使用Java,JSP,Tomcat和Oracle 9i/10g。
我有现有的数据库,其中存储了本地时间的数据。例如,如果表是"约会",则所有计划日期,创建日期和更改日期 - 数据都以"Date dt = new java.util.Date((;"和SQL语句"插入约会(计划日期,创建日期,更改日期(值(?,?,?("存储到数据库中
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 代码中对数据库执行搜索查询时可以进行哪些更改?
如果您可以提供一些步骤,那将很有帮助。
非常感谢。
以 UTC 格式将日期存储在数据库中,并根据区域设置转换为每个客户端的本地时区。