使用 JPA 和 Hibernate 在 UTC 时区存储日期/时间
在 JPA/ 中处理日期和时间时担心时区差异休眠应用程序?本文探讨了如何在 UTC (GMT) 时区有效存储和检索时态数据,确保跨不同时区进行一致且准确的处理。
考虑下面带注释的 JPA 实体:
public class Event {
@Id
public int id;
@Temporal(TemporalType.TIMESTAMP)
public java.util.Date date;
}
确保存储的日期反映 UTC 时间:
解决方案:
从 Hibernate 5.2 开始,配置 UTC 时区得到了简化。通过将以下属性添加到 JPA 配置文件 (properties.xml):
或对于 Spring Boot 应用程序,将此属性添加到application.properties:
spring.jpa.properties.hibernate.jdbc.time_zone=UTC
此配置确保所有时态数据都在 UTC 时区存储和检索。例如,日期 2008 年 2 月 3 日上午 9:30 太平洋标准时间 (PST) 将在数据库中存储为 2008 年 2 月 3 日下午 5:30 UTC,并在检索时按此解释。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3