使用 Jackson JSR310 模块反序列化 LocalDateTime
我正在使用描述杰克逊数据类型JSR310页面的库,但我仍然难以使其正常工作。
我已经配置了以下bean:
@Bean
@Primary
public ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JSR310Module());
return mapper;
}
当我调用我的 REST API 时,日期格式输出是 ,例如 .这可以通过我的AngularJS代码处理得很好。yyyy-MM-dd'T'HH:ss.SSSSSS
2015-04-11T00:10:38.905847
当我想向 REST API 提交内容时,日期将发布为 ,例如yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
2015-04-09T08:30:00.000Z
杰克逊在最后一直抱怨“Z”。如果我看一下文档中的,它使用哪个沸腾,它提到它没有覆盖区域。LocalDateTimeDeserializer
DateTimeFormatter.ISO_LOCAL_DATE_TIME
ISO_LOCAL_DATE'T'ISO_LOCAL_TIME
所以我想我应该在我正在创建的上设置:DateFormat
ObjectMapper
@Bean
@Primary
public ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JSR310Module());
mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"));
return mapper;
}
但这无济于事。我将其更改为简单的东西,但序列化日期仍保留为以前的格式,反序列化也不受影响。yyyy-MM-dd
我在这里做错了什么才能让它发挥作用?据我所知,我的JavaScript代码中的日期格式是ISO 8601格式...