【发布时间】:2022-12-12 18:25:43
【问题描述】:
我想在我的 spring boot 应用程序中序列化/反序列化 ZonedDateTime,所以我需要自定义 ObjectMapper。但是当我反序列化它时,我无法正确获取 ZonedDateTime。
这是我的示例代码:
ObjectMapper mapper = new ObjectMapper()
.enable(MapperFeature.DEFAULT_VIEW_INCLUSION)
.enable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.findAndRegisterModules();
ZonedDateTime dateTime = ZonedDateTime.now();
String json = mapper.writeValueAsString(dateTime);
LOGGER.info("ZonedDateTime json: " + json);
ZonedDateTime dateTime2 = mapper.readValue(json, ZonedDateTime.class);
assertEquals(dateTime, dateTime2);
此测试失败并显示以下内容:
org.opentest4j.AssertionFailedError:
Expected :2022-12-12T18:00:48.711+08:00[Asia/Shanghai]
Actual :2022-12-12T10:00:48.711Z[UTC]
【问题讨论】: