簡體   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