我在数据库中存储了一个 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 有关,但如何防止这种情况发生?谢谢!
最佳答案
简短回答:只需转换您的 Date to utc
更长的答案:只要我们不考虑相对论效应,日期(或更恰本地命名为时间点)就没有时区。但是,如果将其显示为字符串,则有多种显示方式。一种变化是时区的选择。
如果您不特别注意使用特定时区,许多程序将选择机器“居住”的时区,该时区在操作系统级别配置并设置为适合的时区计算机大部分时间所在的位置。
关于java - 不同时区服务器上的 Hibernate 日期问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30272346/