定制软件SpringBoot 日期转换错误JSON parse error: Cannot deserialize value of type `java.time.LocalDateTime`

1、java 中 LocalDate 定制软件类型的数据在 定制软件上进行测试时,以json 定制软件格式输入时格式为2018-07-09,定制软件需要特别注意的是,07和09是两位数字,不是一位数字。

2、如果日期是 类型,那么不论是前台传String格式日期给后台,还是后台返回格式化传给前端的日期,JacksonAutoConfiguration会自动处理。

3、如果日期是类型,那么前端到后端、后端返回给前端均需要我们进行处理。因为下面yml中的配置不适用于Java 8日期类型,例如LocalDate和LocalDateTime,它只使用于Date或DateTime类型的字段。

  1. #日期格式化
  2. spring:
  3. jackson:
  4. date-format: yyyy-MM-dd HH:mm:ss

 解决方案:增加LocalDateTimeConfig配置类

  1. /**
  2. * LocalDateTime全局格式
  3. */
  4. @Configuration
  5. public class LocalDateTimeGlobalConfig {
  6. private static final String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
  7. /**
  8. * 配置LocalDateTime类型序列化与反序列化
  9. */
  10. @Bean
  11. public Jackson2ObjectMapperBuilderCustomizer jsonCustomizer() {
  12. /*return new Jackson2ObjectMapperBuilderCustomizer() {
  13. @Override
  14. public void customize(Jackson2ObjectMapperBuilder jacksonObjectMapperBuilder) {
  15. jacksonObjectMapperBuilder.serializers(new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DATE_TIME_PATTERN)));
  16. jacksonObjectMapperBuilder.deserializers(new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DATE_TIME_PATTERN)));
  17. }
  18. };*/
  19. //这种方式等同于上边
  20. return builder -> {
  21. builder.serializers(new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DATE_TIME_PATTERN)));
  22. builder.deserializers(new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DATE_TIME_PATTERN)));
  23. };
  24. }
  25. }

【注】

1、也可以用转换器来解决该问题。

     参考文章:

2、 Date和LocalDateTime均可以使用的解决方案(我认为这种用处不大),参考文章:

3、get请求获取LocalDateTime的方式与Date一样,都是使用注解:

  1. @GetMapping("date")
  2. public Object date(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime date) {
  3. return date;
  4. }
  5. @GetMapping("date2")
  6. public Object date(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate date) {
  7. return date;
  8. }

4、 解决的原理关键在于JacksonAutoConfiguration类,

 原理分析可以参考以下文章:

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发