繁体   English   中英

Java jackson 如何反序列化为日期

[英]Java jackson how to deserialize into a Date

我正在使用Jackson将日期反序列化到此属性中:

private Date createDate; 

有效载荷的一部分:

"createdDate": "1979-12-05T08:00Z",

收到此错误:

无法从字符串“1979-12-05T08:00Z”中反序列化 java.util.Date 类型的值:不是有效表示(错误:无法解析日期值“1979-12-05T08:00Z”:无法解析日期“ 1979-12-05T08:00.000Z":虽然它似乎符合格式 'yyyy-MM-dd'T'HH:mm:ss.SSS'Z'',但解析失败

到目前为止我尝试的是包括这种依赖:

<dependency>
  <groupId>com.fasterxml.jackson.datatype</groupId>
  <artifactId>jackson-datatype-jsr310</artifactId>
</dependency>

并且:

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-ddTHH:mmZ")
private Date createDate; 

但它没有用。

JsonFormat注释应该可以工作,您只需要将模式修复为:

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm'Z'")
private Date createDate;

此外,您应该在ObjectMapper object 上设置时区:

ObjectMapper mapper = new ObjectMapper();
mapper.setTimeZone(TimeZone.getTimeZone("GMT"));

看一眼:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM