欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

项目中遇到的问题

程序员文章站 2022-04-18 09:29:10
...

feign远程调用日期格式化错误

问题原因

公司购买的一个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重新定义日期解析的格式,问题就可以解决。

*以上都是个人的见解,如有错误欢迎大家指出讨论

相关标签: java