通常我們習慣使用 2018-07-07 12:00:00
這樣的日期格式,那麼在 Spring 中需要配置自己的轉換器
SpringMVC
@Configuration
@EnableWebMvc
public class WebConfiguration implements WebMvcConfigurer {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder()
.indentOutput(true)
.dateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"))
.modulesToInstall(new ParameterNamesModule()); //JDK8 新特性,可選擇多個模塊
converters.add(new MappingJackson2HttpMessageConverter(builder.build()));
}
}
SpringBoot
@Configuration
public class AppConfig {
@Bean
public HttpMessageConverters customConverters() {
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder()
.indentOutput(true)
.dateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"))
.modulesToInstall(new ParameterNamesModule());
HttpMessageConverter<?> additional = new MappingJackson2HttpMessageConverter(builder.build());
return new HttpMessageConverters(additional);
}
}
其中的 Jackson2ObjectMapperBuilder
是一個 ObjectMapper
的構造器,它初始化了很多 Jackson 的默認配置,查看它的 api 文檔 可以看到很多配置方法
參考
HttpMessageConverter進行http序列化和反序列化
SpringMVC message-converters
SpringBoot message-converters