Java Jackon 2.4.2未能反序列化有效日期,即使在指定日期格式之后也是如此
我正在尝试用自定义日期格式反序列化JSON。即使我在对象映射器上设置了日期格式,它仍然失败:Java Jackon 2.4.2未能反序列化有效日期,即使在指定日期格式之后也是如此,java,json,date,jackson,deserialization,Java,Json,Date,Jackson,Deserialization,我正在尝试用自定义日期格式反序列化JSON。即使我在对象映射器上设置了日期格式,它仍然失败: SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); dateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); mapper.setDateFormat(dateFormat); 然后,我尝试使用该映射器反序列化以下JSON: {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
mapper.setDateFormat(dateFormat);
然后,我尝试使用该映射器反序列化以下JSON:
{
"id": 11,
"confirmed": false,
"creationDate": "2015-04-20T22:27:41Z",
"lastUpdateDate": "2015-04-20T22:27:41Z",
"name": "test"
}
使用该行:
Test test = mapper.readValue(jsonString, Test.class);
它失败于:
com.fasterxml.jackson.databind.exc.InvalidFormatException: Can not construct instance of java.util.Date from String value '2015-04-20T22:27:41Z': not a valid representation (error: Failed to parse Date value '2015-04-20T22:27:41Z': Unparseable date: "2015-04-20T22:27:41Z")
知道我做错了什么吗?我似乎不知道我错过了什么
谢谢大家! 使用
yyyy-MM-dd'HH:MM:ssX
Z
用于RFC 822时区,而Z不是这样的时区X
表示ISO 8601时区,Z表示这样的时区