首先第一点需要知道的是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
如对本文有疑问, 点击进行留言回复!!
跟我学Springboot开发后端管理系统6:缓存框架Caffeine
《Oracle Java EE编程自学与面试指南》01-02、Web应用类型
Error: Avoided redundant navigation to current location: “/XXX“.的问题
Avoided redundant navigation to current location:
荐 四十一、Vue项目上手 | 用户管理系统 实现用户修改和删除功能(完成篇)
网友评论