Java Jackson中解析日期的正确日期格式是什么?

Java Jackson中解析日期的正确日期格式是什么?,java,serialization,jackson,Java,Serialization,Jackson,我正在将一个映射映射到一个Java模型,直到今天一切都正常。由于一些新数据,它似乎失败了。以下是错误: org.codehaus.jackson.map.JsonMappingException: Can not construct instance of java.util.Date from String value '2013-08-14T12:16:02.31-05:00': not a valid representation (error: Can not parse date

我正在将一个映射映射到一个Java模型,直到今天一切都正常。由于一些新数据,它似乎失败了。以下是错误:

org.codehaus.jackson.map.JsonMappingException: Can not construct instance of   
java.util.Date from String value '2013-08-14T12:16:02.31-05:00': not a valid
representation (error: Can not parse date "2013-08-14T12:16:02.31-05:00": not
compatible with any of standard forms ("yyyy-MM-dd'T'HH:mm:ss.SSSZ", "yyyy-
MM-dd'T'HH:mm:ss.SSS'Z'", "EEE, dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd"))
在我的Jackson ObjectMapper bean中,我设置了日期格式:

<property name="myFormat">
    <bean class="java.text.SimpleDateFormat">
            <constructor-arg type="java.lang.String" value="yyyy-MM-dd'T'HH:mm:ss'Z'"/>     
    </bean>
</property>


日期格式有什么问题?

毫秒中缺少一位数字;否则,将匹配默认的ISO-8601值。因此,如果可能,只需生成使用3位数字而不是2位数字的日期/时间值

此外,您的自定义日期格式可能无法通过Spring注册(不确定,我自己不使用Spring);但如果是,则指定literal
Z
用于时区;但您的值实际上使用相对偏移量。因此,您可能需要省略引号