如何使用 Jackson 库中的 @JsonFormat 将日期解析为“dd-MMM-yyyy”格式?我正在使用 Java 8 和 Jackson 2.8.9。
示例: 我想得到: 2019-06-22T00:00:00Z -> 22-Jun-2019
我正在使用
@JsonFormat(pattern = "dd-MMM-yyy")
private Date myDate;
我收到一个异常:
JSON 解析错误:无法从字符串“2019-06-22T00:00:Z”反序列化 java.util.Date 类型的值:预期格式“dd-MMM-yyyy”
我以为我能够将该日期解析为预期格式,但看起来这是不可能的。您有什么建议吗?我该怎么做?我正在寻找最好的方法。我可以使用这个注释来做到这一点吗?
由于您使用的是 java 8,因此您应该使用
LocalDate
而不是旧的 API。
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MMM-yyyy")
private final LocalDate localDate;
我也可以使用
Date
API 进行反序列化。如果还不行,请尝试更新jackson神器。
使用这个库日期格式
dateFormat('your date variable', "mm/dd/yyyy")
总是能成功
在java 8及以上版本中你可以使用如下:
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy")
private LocalDate month;