1. 程式人生 > 其它 >springboot專案中jackson跟fastjson設定時區

springboot專案中jackson跟fastjson設定時區

 

 

import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import java.text.SimpleDateFormat; import java.util.List; import java.util.TimeZone; @Configuration
public class CorsConfig2 implements WebMvcConfigurer { private static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedMethods("*") .allowedOrigins(
"*") .allowedHeaders("*"); } // 設定時區 (TimeZone是jdk自帶的時區類,這種方式可以用來設定fastjson、jackson的預設時區) // @PostConstruct // public void setTimeZone(){ // TimeZone timeZone = TimeZone.getTimeZone("UTC"); // TimeZone.setDefault(timeZone); // } // 設定時區 jackson 設定時區 系統統中就可以設定預設的序列化後格式 如想要返回 yyyy-MM-dd 只需要在 // jsonformat 註解上加 yyyy-MM-dd // spring.jackson.time-zone=GMT+8 @Bean public MappingJackson2HttpMessageConverter jackson2HttpMessageConverter() { MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); ObjectMapper mapper = new ObjectMapper(); mapper.setTimeZone(TimeZone.getDefault()); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); mapper.setDateFormat(new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS)); converter.setObjectMapper(mapper); return converter; } @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { converters.add(jackson2HttpMessageConverter()); } // fastjson 設定不了時區 // @Bean // public HttpMessageConverters fastJsonConverters() { // FastJsonHttpMessageConverter fastJsonConverter = new FastJsonHttpMessageConverter(); // FastJsonConfig fastJsonConfig = new FastJsonConfig(); // fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); // fastJsonConverter.setFastJsonConfig(fastJsonConfig); // HttpMessageConverter<?> httpMessageConverter = fastJsonConverter; // return new HttpMessageConverters(httpMessageConverter); // } // // @Override // public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { // FastJsonHttpMessageConverter fastJsonConverter = new FastJsonHttpMessageConverter(); // FastJsonConfig fastJsonConfig = new FastJsonConfig(); // fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); // fastJsonConverter.setFastJsonConfig(fastJsonConfig); // //converters.add(fastJsonConverter);//這會讓fastJsonConverter排在訊息轉換器管道列表的最後,可能會輪不到它處理訊息轉換 // converters.add(0, fastJsonConverter);//要顯示指明將fastJsonConverter排在訊息轉換器管道列表的首位 // } }

 

springboot可以通過配置設定jackson時區和時間格式,參考類:org.springframework.boot.autoconfigure.jackson.JacksonProperties

例子:spring.jackson.time-zone=GMT+8

這個時區配置後,feign呼叫也沒有問題了。

 

轉載:https://blog.csdn.net/qq_36763236/article/details/111866828

 

 

 

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back