不同时区的服务器上的Hibernate日期问题

时间:2015-05-16 05:57:27

标签: java mysql hibernate date datetime

我将日期存储在数据库中作为UTC日期(' 2015-04-24 00:00:00')。当我在美国东部时区运行的服务器上获得此日期(使用Hibernate)时,显示为正确的日期,2015-04-24 00:00:00'。但是,当我在us-west-1区域的AWS上运行的服务器上获取此数据时(我假设是太平洋时间),日期显示为' 2015-04-23 20:00:00' 。有谁知道为什么会这样?我认为这与日期转换为本地时间而不是UTC有关,但我怎样才能防止这种情况发生?谢谢!

1 个答案:

答案 0 :(得分:1)

简短回答:只需转换Date to utc

即可

更长的答案:只要我们不考虑相对论效应,日期(或更恰当地称为时间点)就没有时区。但是如果将它显示为String,则有许多显示它的变体。一种变化是时区的选择。

如果您不特别注意使用特定时区,许多程序将选择机器“生活”的时区,该时区在操作系统级别配置并设置为适合的时区。计算机大部分时间的位置。