【发布时间】:2019-09-25 13:25:31
【问题描述】:
我想在 sql server 2014 中使用 UTC 时区保存日期。我使用 ZonedDateTime zonedDateTime = ZonedDateTime.now(ZoneId.of("UTC")) 获取当前日期时间并使用 Hibernate 会话对象将其保存到 db。在调试时,我可以看到在 Java 程序中日期很好,就像 2019-09-25T13:22:29.573Z[UTC],但是在保存到数据库列之后,它就像这样 2019-09-25 18:53:23.3630000。它会根据系统时间自动转换时间部分。任何人都可以请建议是什么问题?我在数据库中创建此列时使用了datetime2 数据类型。
【问题讨论】:
-
Sql server 没有将时区存储为日期的一部分,那么如果不在系统时间的时区中,您希望如何存储它?如果您需要完全相同的时间,请修改服务器以使用 UTC 时间,或者记住在将日期读回 java 时将其转换回 UTC
-
如果使用 hibernate/java 检索日期并通过 java(或在调试器中)打印它会得到什么?
标签: java hibernate sql-server-2014