Hibernate DST没有时区的时间戳的日期映射问题

时间:2014-08-05 18:22:09

标签: sql spring hibernate postgresql jpa

我在使用hibernate在PostgreSQL中存储 java.util / sql.Date 时遇到问题:我将日期存储为时间戳而没有时区类型。现在,在大多数情况下,一切都没问题,因为我将它作为 java.util(sql).Date 映射到实体中。

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

在我的数据库中,我的输入次数介于 2到凌晨3点之间,例如

  

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

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

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

最佳, 马尔钦

1 个答案:

答案 0 :(得分:1)

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