springboot使用fastjson格式化日期数据不生效

说实话,自己为了这个小问题查了快三个小时才找到解决方案.

网上很多的解决方案本身都是针对Jackson的,Jackson的解决方案相对比较容易,主要就是在application.yaml文件里面添加以下的代码就能都正常显示格式化的日期数据了

spring:
  #配置时间的格式
  jackson:
    default-property-inclusion: ALWAYS
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8

但是fastjson相对来说步骤就比较多一些

首先我们就需要找到我们是那个类继承的 WebMvcConfigurationSupport, 不能够直接在启动类里面直接添加 因为接下来我们所有的操作都是在这个类上面进行的.

大部分的文章到这里都是直接说添加下面的代码就能使得时间正常的显示:

@Bean//使用@Bean注入fastJsonHttpMessageConvert
    public HttpMessageConverter fastJsonHttpMessageConverters(){
        //1.需要定义一个Convert转换消息的对象
        FastJsonHttpMessageConverter fastConverter=new FastJsonHttpMessageConverter();
        //2.添加fastjson的配置信息,比如是否要格式化返回的json数据
//
        FastJsonConfig fastJsonConfig=new FastJsonConfig();
        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
        fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
        //3.在convert中添加配置信息
        fastConverter.setFastJsonConfig(fastJsonConfig);
        HttpMessageConverter<?> converter=fastConverter;
        return converter;
    }

但其实并不是,添加了这段代码只能够证明我们的确是编写了这样一个适用于fastjson的日期类数据格式转换器,但是我们编写了,却没有告诉程序,那么系统怎么能够真的去使用这个转换器呢.测试之后也能够看出来的确没有正常显示日期数据
在这里插入图片描述

所以我们还需要下面这一步,我们需要将该转换器注册到系统之中,这样系统就能够正常使用该转换器去转换我们的日期类数据了

 //添加转换器
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        converters.add(fastJsonHttpMessageConverters());
    }

测试之后:
在这里插入图片描述
时间的确能够正常显示了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值