正直なところ、私はこの小さな問題をほぼ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());
}
テスト後:
時間は確かに正常に表示されます。