项目中遇到的问题
程序员文章站
2022-04-18 09:29:10
...
问题原因
公司购买的一个boot项目要注册到公司自己的注册中心中去,然后feign远程调用日期格式化错误
问题报错
// 报错信息
Cannot parse date "2020-08-31 00:00:00": while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSS`
问题扩展
feign本身序列化是采用com.fasterxml.jackson.databind。他里面工作的是ObjectMapper,它默认格式化日期是yyyy-MM-dd’T’HH:mm:ss.SSS,我们需要重新注入一个ObjectMapper。
问题解决
@Bean
public ObjectMapper customObjectMapper(){
ObjectMapper objectMapper = new ObjectMapper();
//当出现未知属性的时候,忽略掉未知属性,正常解析
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//修改json-date转换
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
objectMapper.setDateFormat(sdf);
return objectMapper;
}
在注入的这个ObjectMapper重新定义日期解析的格式,问题就可以解决。
*以上都是个人的见解,如有错误欢迎大家指出讨论