Springbootはfastjsonを使用して日付データをフォーマットしますが有効になりません

正直なところ、私はこの小さな問題をほぼ3時間チェックしてから、解決策を見つけました。

インターネット上の多くのソリューションはジャクソン向けです。ジャクソンのソリューションは比較的簡単です。主なことは、次のコードを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());
    }

テスト後:
ここに画像の説明を挿入
時間は確かに正常に表示されます。

おすすめ

転載: blog.csdn.net/lovely__RR/article/details/108759681