我在反序列化我正在使用的服务期间使用的类中有以下字段。
private ZonedDateTime transactionDateTime;
我正在使用的服务可能会使用以下模式返回日期或日期时间:yyyy-MM-dd'T'HH:mm:ss.SSSZ
让我举两个例子来说明该服务返回的内容:
- 2015-11-18T18:05:38.000+0200
- 2015-11-18T00:00:00.000+0200
虽然第一个运行良好,但后者会导致在反序列化期间引发以下异常:
java.time.format.DateTimeParseException:文本
无法在索引 23 处解析“2015-11-18T00:00:00.000+0200”
我在用着;
- 春季启动1.3.1
- Jackson 2.6.4(包含 JSR310 模块)
这是否需要自定义反序列化类?
Jackson 反序列化器默认会绕过时区信息并使用上下文时区来覆盖它,所有 ISO8601 都会以 UTC 结束。
使用 Spring,可以通过以下方式关闭此功能:
spring.jackson.deserialization.ADJUST_DATES_TO_CONTEXT_TIME_ZONE=false
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)