美文网首页
spring boot 全局格式化date 类型

spring boot 全局格式化date 类型

作者: 程序男保姆 | 来源:发表于2023-07-05 14:12 被阅读0次
    • 采用@JsonComponent注解,来实现JsonSerializer和JsonDeserializer
    
    import com.fasterxml.jackson.databind.SerializationFeature;
    import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
    import org.springframework.boot.jackson.JsonComponent;
    import org.springframework.context.annotation.Bean;
    
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.time.LocalDateTime;
    import java.time.format.DateTimeFormatter;
    import java.util.TimeZone;
    
    @JsonComponent
    public class DateFormatConfig {
    
        @Value("${spring.jackson.date-format:yyyy-MM-dd HH:mm:ss}")
        private String pattern;
    
        @Bean
        public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilder() {
            return builder -> {
                TimeZone tz = TimeZone.getTimeZone("UTC");
                DateFormat df = new SimpleDateFormat(pattern);
                df.setTimeZone(tz);
                builder.failOnEmptyBeans(false)
                        .failOnUnknownProperties(false)
                        .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
                        .dateFormat(df);
            };
        }
    
        @Bean
        public LocalDateTimeSerializer localDateTimeDeserializer() {
            return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(pattern));
        }
    
        @Bean
        public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer(LocalDateTimeSerializer localDateTimeDeserializer) {
            return builder -> builder.serializerByType(LocalDateTime.class, localDateTimeDeserializer);
        }
    }
    
    
    • @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")

    全局配置之后对于某些字段不希望使用这样的格式,则对此字段额外设置@JsonFormat即可,这个注解的优先级更高

    相关文章

      网友评论

          本文标题:spring boot 全局格式化date 类型

          本文链接:https://www.haomeiwen.com/subject/mljkudtx.html