Hibernate的时间戳与时区格式问题

时间:2018-07-12 23:52:31

标签: java hibernate datetime timezone spring-data-jpa

我正在使用Spring Data JPALocalDateTime,同时在Oracle的TIMESTAMP WITH TIMEZONE类型列中插入值。即使LocalDateTime不包含时区信息,Hibernate也使用JVM默认的user.timezone

我尝试通过spring.jpa.properties.hibernate.jdbc.time_zone属性控制此值,但是被忽略了,仅在JVM上直接使用-Duser.timezone会影响Hibernate附加到我的时间戳的时区值。

到这里一切都OK,但是我的问题是,Hibernate在更新列时使用的格式为TZR(例如UTC),如here所述,但是我有一个要求具有TZH:TZM(例如+00:00)格式。有趣的是,类型TIMESTAMP WITH TIMEZONE保持插入数据的格式,因此如果我用TZR插入,则选择它,我的要求是直接选择此列而无需任何输入格式定义,因此迫使我从Hibernate发送偏移格式,但是我无法实现。

在发送时间戳信息时,是否可以控制Hibernate使用的格式?我无法通过我的LocalDateTime字段进行控制,因为它们已经没有时区信息。

0 个答案:

没有答案