首页 > 解决方案 > Jackson @JsonFormat 使用不正确的时区转换日期

问题描述

我有一个来自 JSON 有效负载的值:

"callStartTime" : "2019-03-27 13:00:00"

实体.java

@JsonProperty("callStartTime")
@Column(name = "call_start_dt", nullable = false)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", lenient = OptBoolean.FALSE)
private Date callStartTime;

当我在控制台上打印它时,它说:

Wed Mar 27 08:00:00 CDT 2019

我想和 json 有效载荷中的一样。我该如何解决?

我只是从 json 中获取日期并将其写入日期时间列中的 mysql db。

标签: javaspringdatejacksonannotations

解决方案


简单的解决方案:我通过更改数据类型来解决它,以String完成我的目标,即捕获来自 JSON 有效负载的值。使用Date和其他数据类型将值转换为一些不同的时区。

@JsonProperty("callStartTime")
@Column(name = "call_start_dt", nullable = false)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", lenient = OptBoolean.FALSE)
private **String** callStartTime;

推荐阅读