使用 Hibernate 时获取 UTC 时区中的日期

err*_*ror 4 java spring datetime hibernate

我在我的项目中使用 Spring Boot 和 Hibernate 5 以及 MySQL。

如何从 UTC 而不是我的 JVM 时区的数据库中获取 DateTime?

是否有任何配置添加到application.properties喜欢jadira.usertype.javaZone的Jadira或其他一些技巧?

Vla*_*cea 6

从 Hibernate 5.2 开始,您现在可以使用hibernate.jdbc.time_zone配置属性。

基本上,您现在可以使用以下配置属性为所有列TIMESTAMPTIME列强制使用 UTC 时区:

<property name="hibernate.jdbc.time_zone" value="UTC"/>
Run Code Online (Sandbox Code Playgroud)


fal*_*con 2

当您启动应用程序时,您可以将 JVM 的默认时区设置为 UTC

TimeZone.setDefault(TimeZone.getTimeZone("Etc/UTC"));
Run Code Online (Sandbox Code Playgroud)

这将确保日期在应用程序中移动、保存到数据库、从数据库检索等时始终采用 UTC 格式,并且可以在需要时转换为任何所需的时区。