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格式数据时就是该框架在起作用。
如果字段属性是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就会根据配置文件中日期格式化的配置对结果进行处理。
但是如果字段属性为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
下一篇: 互联网已进入免费时代