【问题标题】:Hibernate DST Date mapping issue for timestamps without time zone没有时区的时间戳的休眠 DST 日期映射问题
【发布时间】:2014-08-05 18:22:09
【问题描述】:

我在使用 hibernate 在 PostgreSQL 中存储 java.util/sql.Date 时遇到问题:我将日期存储为 timestamp without time zone 类型。现在,在大多数情况下,一切都很好,因为我将其映射到实体中为 java.util(sql).Date

但是,我遇到了一个我不知道如何克服的问题: 3 月 30 日发生了时间变化(夏令时开始)。在我的国家,这意味着从本地 2am 切换到本地 3am

在我的数据库中,我很少有时间凌晨 2 点到 3 点之间的条目,例如

“2014-03-30 02:15:55”

现在,由于时间变化,Java 所做的是获取该日期并将其显示为凌晨 3:15:55。但是,我迫切需要它是 02:15:55,确切地说它是如何存储在数据库中的(基本上意味着不要使用 +02:00 时区 BEFORE 凌晨 3 点,而是使用它之后)。恐怕也是 10 月 26 日,那是 DST 结束的时候。

这可能使用 Hibernate 和/或 Spring 吗?我喜欢这种情况下的全局配置。

最好, 马辛

【问题讨论】:

    标签: sql spring hibernate postgresql jpa


    【解决方案1】:

    您需要将日期存储在 UTC 时区以忽略 DST。请参阅此问题How to store date/time and timestamps in UTC time zone with JPA and Hibernate 以获取解决方案

    【讨论】:

      猜你喜欢
      • 2020-05-15
      • 2010-11-02
      • 1970-01-01
      • 2017-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-20
      • 2018-09-28
      相关资源
      最近更新 更多