我正在使用描述Jackson Datatype JSR310 页面的库,但我仍然很难让它工作。
我已经配置了以下bean:
@Bean
@Primary
public ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JSR310Module());
return mapper;
}
当我调用我的 REST API 时,日期格式输出是yyyy-MM-dd'T'HH:ss.SSSSSS
,例如2015-04-11T00:10:38.905847
。这由我的 AngularJS 代码处理得很好。
当我想向 REST API 提交某些内容时,日期会发布为yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
,例如2015-04-09T08:30:00.000Z
杰克逊最后一直在抱怨“Z”。如果我在LocalDateTimeDeserializer
文档中查看它使用DateTimeFormatter.ISO_LOCAL_DATE_TIME
which 沸腾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 格式...