欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SpringBoot中对LocalDateTime进行格式化

程序员文章站 2023-11-05 12:05:46
首先第一点需要知道的是springboot默认依赖的json框架是jackson。当使用@ResponseBody注解返回json格式数据时就是该框架在起作用。如果字段属性是Date而非LocalDateTime时,通常我们会在application.properties里面配置如下:spring.mvc.date-format=yyyy-MM-dd HH:mm:ssspring.jackson.date-format=yyyy-MM-dd HH:mm:ssspring.jackson.time-...

首先第一点需要知道的是springboot默认依赖的json框架是jackson。当使用@ResponseBody注解返回json格式数据时就是该框架在起作用。

SpringBoot中对LocalDateTime进行格式化
如果字段属性是Date而非LocalDateTime时,通常我们会在application.properties里面配置如下:

spring.mvc.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
spring.jackson.serialization.write-dates-as-timestamps=false

如下图所示,spring.jackson开头的配置会被JacksonProperties类获取进行使用。当返回json格式的时候,Jackson就会根据配置文件中日期格式化的配置对结果进行处理。
SpringBoot中对LocalDateTime进行格式化


但是如果字段属性为LocalDateTime呢?这种配置就失去了作用。

这时候建议配置如下:

/**
 * Created by jianggc at 2020/7/1.
 */
@Configuration
public class LocalDateTimeSerializerConfig {

    @Value("${spring.jackson.date-format:yyyy-MM-dd HH:mm:ss}")
    private String pattern;

    // localDateTime 序列化器
    @Bean
    public LocalDateTimeSerializer localDateTimeSerializer() {
        return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(pattern));
    }

    @Bean
    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
        return builder -> builder.serializerByType(LocalDateTime.class, localDateTimeSerializer());
    }

}

这种配置方式自然是全局的,如果想针对某个字段特殊处理,可以在类字段上面添加注解@JsonFormat:

    @JsonFormat(pattern="yyyy-MM-dd")
    private LocalDateTime createTime;

本文地址:https://blog.csdn.net/J080624/article/details/107065047