首页 > 解决方案 > 如何在 Spring Boot WebMvcConfigurerAdapter 中为日期和日历设置日期格式?

问题描述

我正在为 WebMvcConfigurerAdapter 使用以下自定义配置来支持惰性对象并同时支持 XML 和 JSON 响应:

@Configuration
@EnableWebMvc
public class CustomWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter {
    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    public MappingJackson2HttpMessageConverter jacksonJsonMessageConverter() {
        MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();

        ObjectMapper mapper = new ObjectMapper();
        // Registering Hibernate5Module to support lazy objects
        mapper.registerModule(new Hibernate5Module());
        mapper.setDateFormat(dateFormat);
        messageConverter.setObjectMapper(mapper);
        return messageConverter;
    }

    public MappingJackson2XmlHttpMessageConverter jacksonXmlMessageConverter() {
        MappingJackson2XmlHttpMessageConverter messageConverter = new MappingJackson2XmlHttpMessageConverter();

        XmlMapper mapper = new XmlMapper();
        // Registering Hibernate5Module to support lazy objects
        mapper.registerModule(new Hibernate5Module());
        mapper.setDateFormat(dateFormat);
        messageConverter.setObjectMapper(mapper);
        return messageConverter;
    }

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        // Here we add our custom-configured HttpMessageConverter
        // To support XML
        converters.add(jacksonXmlMessageConverter());
        // To support JSON
        converters.add(jacksonJsonMessageConverter());
        // To support Resources (File Download)
        converters.add(new ResourceHttpMessageConverter());
        super.configureMessageConverters(converters);
    }
}

我能够按预期获得日历对象(时间戳)。即,yyyy-MM-dd HH:mm:ss 但我无法以“yyyy-MM-dd”格式发布日期对象。

如何添加自定义配置以支持两种格式,即 java.util.Date 作为“yyyy-MM-dd”和 java.util.Calendar 作为“yyyy-MM-dd HH:mm:ss”?

标签: spring-mvcspring-boot

解决方案


推荐阅读