我有一个Java应用程序通过伪装调用微服务,并且遇到以下异常:
原因:com.fasterxml.jackson.databind.exc.InvalidFormatException: 无法从字符串反序列化类型
java.util.Date
的值 “ 2019-05-08T14:41:39.803 + 0000”:预期格式 “ yyyy-MM-dd'T'HH:mm:ss.XXX”
我已经指出,从服务器获得的这种格式是ISO8601,位于以下位置:
我正在尝试以下@JsonFormat批注,但它们失败了:
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.XXX", lenient = OptBoolean.TRUE) private Date creationDate;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.XXX", lenient = OptBoolean.TRUE) private Date lastUpdatedDate;
所以...为这个非常简单的问题道歉,但是:
如何最后处理+0000才能使反序列化最终生效?
答案 0 :(得分:2)
最后如何处理
+0000
,以使反序列化最终成功?
@JsonFormat
需要SimpleDateFormat
兼容的模式定义。
因此,Z
或X
可以用来表示GMT偏移值,具体取决于偏移格式是什么。
您要查找的完整模式是yyyy-MM-dd'T'HH:mm:ss.SSSZ
或yyyy-MM-dd'T'HH:mm:ss.SSSX
,如SimpleDateFormat
文档的示例所示。