我有一个Spring应用程序,其实体存储日期为java.sql.Timestamp
。角度前端正在捕获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
,但已经看到了这种影响的指导......关于杰克逊在java.sql软件包上玩得不好。这将是我的最后一个选项,并且更喜欢允许我保留时间戳的更改。
由于
答案 0 :(得分:1)
问题是由于时区造成的。如果未指定时间,则将其设置为00:00:000
然后将其转换为毫秒并构造一个Timestamp对象。由于当地时区的UTC偏移量减去了几个小时。
您必须将dateNeeded替换为递增的Timestamp,该时间戳在存储之前会被本地时区偏移量偏移。