首页  >  文章  >  Java  >  如何使用 JPA 和 Hibernate 存储和检索 UTC 日期/时间值?

如何使用 JPA 和 Hibernate 存储和检索 UTC 日期/时间值?

DDD
DDD原创
2024-10-31 16:40:01610浏览

How to Store and Retrieve Date/Time Values in UTC with JPA and Hibernate?

使用 UTC 时区与 JPA 和 Hibernate 进行日期和时间管理

问题:

我们如何配置 JPA 和 Hibernate 来存储和检索 UTC 时区的日期/时间值?

JPA 实体结构:

考虑以下带注释的 JPA 实体:

<code class="java">public class Event {
    @Id
    public int id;

    @Temporal(TemporalType.TIMESTAMP)
    public java.util.Date date;
}</code>

场景:

假设我们的日期值为 2008 年 2 月 3 日上午 9:30 太平洋标准时间 (PST)。我们的目标是将其存储在数据库中,作为相应的 UTC 时间,2008 年 2 月 3 日下午 5:30。同样,从数据库检索时,该日期应解释为 UTC,这意味着显示时 UTC 下午 5:30 会转换为太平洋标准时间上午 9:30。

解决方案:

从 Hibernate 5.2 开始,您可以通过利用以下属性显式设置 UTC 时区:

<code class="xml"><property name="hibernate.jdbc.time_zone" value="UTC"/></code>

将此属性添加到properties.xml JPA 配置文件中。

对于 Spring Boot 用户,将该属性添加到 application.properties 文件中:

<code class="properties">spring.jpa.properties.hibernate.jdbc.time_zone=UTC</code>

通过实现此配置,JPA 和 Hibernate 将确保所有日期/时间值都在 UTC 时区中存储和检索,从而保证一致的解释和不同时区的准确性。

以上是如何使用 JPA 和 Hibernate 存储和检索 UTC 日期/时间值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn