提问人:Viktor Eriksson 提问时间:11/3/2023 最后编辑:Viktor Eriksson 更新时间:11/7/2023 访问量:35
如何从 Java 在 mssql 数据库中保存 UTC 日期 (JPA)
How to save UTC date in mssql database from Java (JPA)
问:
我希望我的数据库中的日期时间(或其他类型)(在我的情况下是 MsSql)是 UTC 格式。
在我的 java 后端中,我尝试将其作为 Date 或 OffsetDateTime 接收并将其传递给我的数据库。 但无论如何,我最终都会在数据库中找到一个本地日期。
因此,在我的应用程序中输入日期时,我的本地时间是 17:22:15。 我将其作为字符串“2023-11-02T16:22:15.441815Z”发送ISO8601。(我目前的偏移量是 +1/瑞典)
在撰写本文时,我当前的 Java 实体字段如下所示:
@Column(name = "measureCreateDate")
private OffsetDateTime measureCreateDate;
但它在数据库中是这样的(当前类型是 datetimeoffset)(忽略所有 NULLS):
在这里,我希望看到“2023-11-02 16:22:15.4418150 +00:00”而不是“2023-11-02 17:22:15.4418150 +00:00”
我该怎么做?
这是一个在 Java 8 上运行的旧应用程序,如果这有什么不同的话。它运行在 Glassfish 应用服务器上,该服务器在后台使用 EclipseLink。
我看到了某种持久性.xml属性:
<property name="hibernate.jdbc.time_zone" value="UTC"/>
但是,由于这是一个旧应用程序,并且正在使用许多其他日期时间字段,我担心这会扰乱当前的功能。
更新1:
JPA 的版本是 2.7.0
Glassfish 的版本是 5.1.0
SQL Server 的版本为 15.0.2104
measureCreateDate 的数据库类型为 datetimeoffset
答: 暂无答案
评论
DATETIMEOFFSET