SpringBoot日期格式化转换

概述

一般我们在接口中将日期作为入参时,都喜欢格式化为yyyy-MM-dd HH:mm:ss字符串进行传输,因为这样看得比较直观。但是我们接口接收的字段又定义为Date类型,类型不一致,不能直接接收。所以就要进行转换,前后端才能适配上。

配置

  • 针对不同的日期类型,配置不一样

1.java.util.Date

  • 直接添加yml配置
spring.jackson.timeZone=GMT+8
spring.jackson.dateFormat=yyyy-MM-dd HH:mm:ss

这是一个全局配置,所有的接口,传入以及返回的日期会是yyyy-MM-dd HH:mm:ss格式

2.java.time.LocalDate & java.time.LocalDateTime

  • 添加配置类
@Configuration
public class LocalDateConfig {
    
    
    /**
     * java.time.LocalDateTime转换器
     * @return
     */
    @Bean
    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
    
    
        return builder -> builder
                .serializerByType(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
                .deserializerByType(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
                .serializerByType(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")))
                .deserializerByType(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")))
                .serializerByType(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern("HH:mm:ss")))
                .deserializerByType(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern("HH:mm:ss")));
    }
}

猜你喜欢

转载自blog.csdn.net/vbhfdghff/article/details/114589889