使用 JPA 和 Hibernate 在 UTC 时区存储日期/时间
在 JPA/ 中处理日期和时间时担心时区差异休眠应用程序?本文探讨了如何在 UTC (GMT) 时区有效存储和检索时态数据,确保跨不同时区进行一致且准确的处理。
考虑下面带注释的 JPA 实体:
<code class="java">public class Event { @Id public int id; @Temporal(TemporalType.TIMESTAMP) public java.util.Date date; }</code>
要确保存储的日期反映 UTC 时间:
解决方案:
从 Hibernate 5.2 开始,配置 UTC 时区得到了简化。通过将以下属性添加到 JPA 配置文件 (properties.xml):
<code class="xml"><property name="hibernate.jdbc.time_zone" value="UTC"/></code>
,或者对于 Spring Boot 应用程序,将此属性添加到 application.properties:
<code class="properties">spring.jpa.properties.hibernate.jdbc.time_zone=UTC</code>
此配置确保所有时态数据都在 UTC 时区存储和检索。例如,日期 2008 年 2 月 3 日上午 9:30 太平洋标准时间 (PST) 将在数据库中存储为 2008 年 2 月 3 日下午 5:30 UTC,并在检索时按此解释。
以上是如何使用 JPA 和 Hibernate 以 UTC 格式存储日期/时间?的详细内容。更多信息请关注PHP中文网其他相关文章!