我有一个来自JSON有效负载的值,如下所示:
"callStartTime" : "2019-03-27 13:00:00"
Entity.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 payload里的一样。我该怎么修呢?
我只是从json中获取date并将其写入mysqldb的datetime列中。
4条答案
按热度按时间6l7fqoea1#
**简单的解决方案:**我通过将数据类型更改为
String
来解决这个问题,这完成了我捕获来自JSON负载的值的目标。使用Date
和其他数据类型将值转换为一些不同的时区。i86rm4rw2#
试试这个
5fjcxozz3#
java.util.Date不捕获时区数据。它只知道自纪元以来的米利斯数。
您可以尝试使用jackson-modules-java8中的某个模块,并将其反序列化为ZonedDateTime的一个示例,该示例可以识别时区。
编辑:试着把这个作为让它工作的基础:
eeq64g8w4#
对此有两种可能的解决方案:
1.定义ObjectMapper bean并设置日期格式。
2.使用@JsonFormat设置特定字段的日期格式