gpt4 book ai didi

java - JSON 到 java.sql.timestamp 反序列化丢失了几个小时,导致日期丢失了一天

转载 作者:行者123 更新时间:2023-12-02 11:46:08 32 4
gpt4 key购买 nike

我有一个 Spring 应用程序,其中的实体将日期存储为 java.sql.Timestamp。 Angular 前端正在捕获 yyyy-mm-dd 格式的变化,但是当 JSON 反序列化为时间戳时,它会丢失几个小时,最终结果是 dd 部分丢失一天。

我知道这与时区有关,但无法找出最快的解决方案。有没有注释可以解决这个问题?

这是我的代码:

实体类变量

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
private Timestamp dateNeeded;

JSON数据传入:

"DateNeeded": "2017-12-25"

我宁愿不必从 java.sql.Timestamp 进行更改,但已经看到了对此影响的指导...有关 Jackson 与 java.sql 包的配合不佳的情况。这将是我的最后一个选择,并且更喜欢允许我保留时间戳的更改。

谢谢

最佳答案

该问题是由于时区造成的。当您未指定时间时,它会将其设置为 00:00:000

然后将其转换为毫秒并构造一个 Timestamp 对象。由于本地时区与 UTC 存在偏差,因此会减去一些小时。

您必须将 dateNeeded 替换为递增的时间戳,该时间戳在存储之前会根据本地时区偏移量进行偏移。

关于java - JSON 到 java.sql.timestamp 反序列化丢失了几个小时,导致日期丢失了一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48194379/

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