我需要定义 ZonedDateTime 的 JsonFormat,其中时间在 xml 消息中定义。
我添加了 Jackson jar 来格式化 ZonedDateTime (com.fasterxml.jackson.datatype.jsr310.JavaTimeModule)
添加了 JavaTimeModule,如下所示:
XmlMapper xmlMapper = new XmlMapper();
xmlMapper.registerModule(new JavaTimeModule());
xmlMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
问题是它无法正确格式化日期时间。
错误是:
com.fasterxml.jackson.databind.exc.InvalidFormatException:不能
反序列化类型的值java.time.ZonedDateTime
来自字符串“2019
3 4 14 44 20 -5":无法解析文本“2019 3 4 14 44 20 -5”
索引 18
这就是我定义时间模式的方式:
@JsonFormat(pattern = "yyyy M e k m s X")
private ZonedDateTime openDtGmt;
当字符串中包含负数时,如何映射区域模式?
UPDATE我意识到这个日期不符合惯例。但这来自遗留系统,无法更改。
我们需要确定日期/时间模式是这样的:
4 位数字年份;所有剩余数字都没有前导零;然后是不带前导零的时区和数字前的符号。
另外,时区是 GMT 时间。时区的格式为 UTC。
我们用 ObjectMapper 替换了 XmlMapper。
这似乎让我们克服了日期/时间格式错误,但在 XML 中存在一个空标签,导致失败。
如果我们能够克服空标签错误,我们就可以用我们自己的方法解析日期/时间。
UPDATE经过更多测试,我们在使用 ObjectMapper 时遇到的错误似乎与空标签有关。看来xml字符串太长了。它在 1000 个字符长度处出错。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)