Spring Web 中时间日期格式化

通常我们习惯使用 2018-07-07 12:00:00 这样的日期格式,那么在 Spring 中需要配置自己的转换器

SpringMVC

@Configuration
@EnableWebMvc
public class WebConfiguration implements WebMvcConfigurer {

    @Override
    public void configureMessageConverters(List> 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

你可能感兴趣的:(Java)