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

标签 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 有关,但如何防止这种情况发生?谢谢!

最佳答案

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

更长的答案:只要我们不考虑相对论效应,日期(或更恰本地命名为时间点)就没有时区。但是,如果将其显示为字符串,则有多种显示方式。一种变化是时区的选择。

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

关于java - 不同时区服务器上的 Hibernate 日期问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30272346/

相关文章:

java - 每当点击 php 时所有按钮功能

JavaFX-11/macOS : DirectoryChooser crashes 'NSObjectNotAvailableException'

java - 在带有 Mockito 的 JUnit 中,如何等待异步方法完成?

php - SQL 用另一个表中的值填充一个表的字段

java - 标准多对多 Hibernate

java - 编译JSP(检查JSP语法错误)

mysql - 创建前判断MySQL表索引是否存在

php - 如何检查MySQL数据库中一天中的每一分钟是否有一行?

java - JPA 中的多个唯一约束

java - 创建文件 [] : Unsatisfied dependency expressed through constructor parameter 1 中定义的名称为 'fieldServiceImpl' 的 bean 时出错