Spring Web 中時間日期格式化

通常我們習慣使用 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章