【发布时间】:2016-01-23 16:16:02
【问题描述】:
我的 J2EE 应用程序部署在集群中,服务器可以位于多个时区。例如,一台服务器位于 EST,另一台服务器位于 CST。
考虑一个场景,请求在 EST 中发送到服务器并将日期和时间存储在数据库中(没有时区)。还有另一个检索相同日期的请求。但该请求可能会发送到 CST 中的另一台服务器。
有没有办法确定数据库中存储的时区日期?
PS:我正在使用 Oracle/Java/Hibernate。
【问题讨论】:
-
如果您将日期存储在固定时区,那么您就可以了(例如,始终转换为 UTC)。或者,您可以存储时区。否则,不,没有办法知道当地时间来自哪个时区。
-
服务器的时区应该是无关紧要的。当您可以将数据库服务器或应用服务器时区更改为您想要的任何内容而不影响任何内容时,您就会知道您已经正确完成了。另请参阅Daylight saving time and time zone best practices。
标签: java oracle hibernate date timezone