gpt4 book ai didi

java - 从数据库中检索时 OffsetDateTime 值发生更改

转载 作者:行者123 更新时间:2023-12-04 07:24:00 25 4
gpt4 key购买 nike

我正在使用来自 MS SQL 的表格数据库并开发了一个 GET API使用 Spring Boot , 从该表中检索所有数据。
这里的表包含一个类型为 datetimeoffset(7) 的列。 .
我有数据成员 OffsetDateTime updatedDate在我的实体内部,用于映射 datetimeoffset来自数据库的列
现在,当我收到 API 响应时,我看到了 updatedDate值 ( 2021-06-17T05:37:40.1938687+05:30 ) 不同于实际的数据库值 ( 2021-06-16 19:090705|707:705) .
我浏览了网络以寻求帮助并尝试了一些类似于 Solution 的解决方案,但是我没有看到任何积极的结果。
任何帮助将非常可观,谢谢!
附注。 Spring Boot版本:2.3.1.RELEASE

最佳答案

这两个值代表时间轴上的同一点。它们只是在不同的时区表示:数据库使用 ESTSpring应用程序使用 IST Indian .当我们将它们转换为 GMT 时,它们看起来是一样的:

String[] dates = {"2021-06-17T05:37:40.1938687 +05:30", "2021-06-16T19:07:40.1938687 -05:00"};
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.n XXX")
.withZone(ZoneId.of("GMT"));
Arrays.stream(dates)
.map(date -> formatter.format(OffsetDateTime.parse(date, formatter)))
.forEach(System.out::println);
上面的代码打印:
2021-06-17T00:07:40.1938687 Z
2021-06-17T00:07:40.1938687 Z
如果您想保留原始表示,您需要指示使用 EST时区而不是默认或系统一。尝试设置: spring.jackson.time-zone配置文件中的属性:

Time zone used when formatting dates. For instance,"America/Los_Angeles" or "GMT+10".

关于java - 从数据库中检索时 OffsetDateTime 值发生更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68316003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com