由于项目将原有的  Date类型的字段改造为 LocalDate,LocalDateTime,LocalTime 类型, 发现  spring  对项目的时间格式无法自动转换,故需手动配置下。

在spring boot  中需在  maven 中引入  jsr-310  的支持

<dependency><groupId>com.fasterxml.jackson.datatype</groupId><artifactId>jackson-datatype-jsr310</artifactId></dependency>

或者直接引用

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-json</artifactId>
</dependency>

因为  spring boot  是使用  jackson 作为  json 序列化和反序列化工具的,故只需配置  jackson 即可。

 /*** 发布时间*/@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")private LocalDateTime updateDate;/*** 创建时间*/@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")private LocalDateTime createDate;

全局配置

配置如下:

@Configuration
public class JacksonConfig {@Beanpublic ObjectMapper objectMapper(){ObjectMapper objectMapper = new ObjectMapper();objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);objectMapper.disable(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE);JavaTimeModule javaTimeModule = new JavaTimeModule();javaTimeModule.addSerializer(LocalDateTime.class,new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(Constants.DEFAULT_DATE_TIME_FORMAT)));javaTimeModule.addSerializer(LocalDate.class,new LocalDateSerializer(DateTimeFormatter.ofPattern(Constants.DEFAULT_DATE_FORMAT)));javaTimeModule.addSerializer(LocalTime.class,new LocalTimeSerializer(DateTimeFormatter.ofPattern(Constants.DEFAULT_TIME_FORMAT)));javaTimeModule.addDeserializer(LocalDateTime.class,new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(Constants.DEFAULT_DATE_TIME_FORMAT)));javaTimeModule.addDeserializer(LocalDate.class,new LocalDateDeserializer(DateTimeFormatter.ofPattern(Constants.DEFAULT_DATE_FORMAT)));javaTimeModule.addDeserializer(LocalTime.class,new LocalTimeDeserializer(DateTimeFormatter.ofPattern(Constants.DEFAULT_TIME_FORMAT)));objectMapper.registerModule(javaTimeModule).registerModule(new ParameterNamesModule());return objectMapper;}}
public class Constants {/** 默认日期时间格式 */public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";/** 默认日期格式 */public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";/** 默认时间格式 */public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss";}

然后只需要在实体类中对应的时间类型上使用  @DateTimeFormat  和  @JsonFormat  即可。

单个ObjectMapper

jsonStr = new String(msg);ObjectMapper objectMapper = new ObjectMapper();objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);objectMapper.disable(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE);JavaTimeModule javaTimeModule = new JavaTimeModule();javaTimeModule.addSerializer(LocalDateTime.class,new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(Constants.DEFAULT_DATE_TIME_FORMAT)));javaTimeModule.addSerializer(LocalDate.class,new LocalDateSerializer(DateTimeFormatter.ofPattern(Constants.DEFAULT_DATE_FORMAT)));javaTimeModule.addSerializer(LocalTime.class,new LocalTimeSerializer(DateTimeFormatter.ofPattern(Constants.DEFAULT_TIME_FORMAT)));javaTimeModule.addDeserializer(LocalDateTime.class,new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(Constants.DEFAULT_DATE_TIME_FORMAT)));javaTimeModule.addDeserializer(LocalDate.class,new LocalDateDeserializer(DateTimeFormatter.ofPattern(Constants.DEFAULT_DATE_FORMAT)));javaTimeModule.addDeserializer(LocalTime.class,new LocalTimeDeserializer(DateTimeFormatter.ofPattern(Constants.DEFAULT_TIME_FORMAT)));objectMapper.registerModule(javaTimeModule).registerModule(new ParameterNamesModule());ComponentPublishedMessage message = objectMapper.readValue(jsonStr, ComponentPublishedMessage.class);

配置在属性上

    @DateTimeFormat(pattern = "yyyy-MM-dd\'T\'HH:mm:ss.SSS")@JsonDeserialize(using = LocalDateTimeDeserializer.class)@JsonSerialize(using = LocalDateTimeSerializer.class)@JsonFormat(pattern = "yyyy-MM-dd\'T\'HH:mm:ss.SSS")private LocalDateTime createDate;

spring boot添加 LocalDateTime 等 java8 时间类序列化和反序列化的支持相关推荐

  1. java8 时间类API

    前言 Instant LocalDate Clock SystemnanoTime 前言 (未完待续) 推荐一篇系统学习的java8时间类文章 我这里会介绍java8 新API中常用个类怎么用 应该是 ...

  2. Spring Boot 整合 SpringDataNeo4j 并封装工具类解析PathValue

    Spring Boot 整合 SpringDataNeo4j 并封装工具类解析PathValue 一.Neo4j 二.Neo4j客户端浏览器 三.maven依赖 四.节点/关系映射 1.NodePer ...

  3. C# 实体类序列化与反序列化一 (XmlSerializer)

    /// <summary>/// 实体类序列化的反序列化的类/// </summary>/// <typeparam name="T">< ...

  4. Spring Boot 添加拦截器的配置方式

    在进行 Java Web 开发的时候我们经常会使用到过滤器,例如日志的记录.权限的验证等功能.以前使用 Spring MVC 的时候需要在 web.xml 中配置过滤器,现在使用 Spring Boo ...

  5. spring boot 添加mybatis,以及相关配置

    首先在pom.xml文件里加入 <dependency><groupId>org.mybatis.spring.boot</groupId><artifact ...

  6. Spring Boot程序无法加载主类解决方法

    平时在打包war包程序后,经当再次右击程序"Run As --> Spring Boot App"时,控制台有时候会出现"应用程序无法加载主类"的报错,解 ...

  7. Spring Boot下无法加载主类 org.apache.maven.wrapper.MavenWrapperMain问题解决

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 引言: 在SpringBoot中需要使用mvnw来做相关操作,但是却有时候会报出达不到MavenWr ...

  8. Spring Boot 2.2.0 正式发布,大幅性能提升 + Java 13 支持

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | DD小分队 来源 | didispace.com/spring-boot-2-2- ...

  9. Spring Boot 实践折腾记(10):响应式编程支持库Reactor

    Spring Boot 2.0发布已经过去了2个多月,随着微服务的流行,Spring Boot也越来越受到青睐,更好的隔离编程范式得到了越来越多项目的应用,这是一件值得高兴的事. Spring Boo ...

最新文章

  1. 深度信念网络研究现状与展望
  2. android app功能 配置,配置安装时分发  |  Android 开发者  |  Android Developers
  3. influxDB和grafana
  4. python中color的用法_python - 如何为热图(使用plt.pcolor创建)中的NaN单元分配特定的颜色或图案,并使其显示在颜色栏中(图colorbar) - 堆栈内存溢出...
  5. #打开cmd指定路径_CMD
  6. 上海市计算机一级客观题,2012年上海市高校计算机等级考试(一级)模拟卷客观题...
  7. java if 顺序 括号_03-03 java 顺序语句结构,选择结构if语句
  8. Intellij IDEA+Tomcat+JRebel热部署
  9. paip.-Djava.library.path -Djava.ext.dirs= 的区别
  10. 合并两个有序数组的三种方法
  11. 透视投影中已知两平面的单应矩阵,能否求出这两平面的夹角?
  12. 五星大饭店完整剧情,五星大饭店(完整集数)在线观看
  13. 途家木鸟美团夏日折扣对垒,门槛低就一定香吗?
  14. serverlet总结
  15. 因果分析与关联分析的联系
  16. 计算机中毒症状简介,电脑中毒的八大表现,第五个大多数人都不知道!
  17. 数字化原住民|ONES 人物
  18. 编译原理三级项目PL/0的研究与改进
  19. USACO05JAN「Naptime」
  20. 中国智慧民航行业现状分析与前景规划咨询报告2022-2028年版

热门文章

  1. [原创] 域模式下的ASP.NET 发邮件代码
  2. 数组和矩阵问题:奇数下标都是奇数或者偶数下标都是偶数
  3. PHP全栈学习笔记10
  4. vuex在vuecli中的简单使用
  5. 2018--Linux命令总结整理复习版
  6. apache访问日志
  7. 用PHP实现单向链表
  8. 网站外链数量的变化可以从哪几点去理解
  9. [转]大话企业级Android应用开发实战 音乐播放器的开发
  10. 修复boot分区文件被删除的方法