栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

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

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

#日期格式化
spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss

 解决方案:增加LocalDateTimeConfig配置类

@Configuration
public class LocalDateTimeGlobalConfig {
    private static final String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";

    
    @Bean
    public Jackson2ObjectMapperBuilderCustomizer jsonCustomizer() {
        
        //这种方式等同于上边
        return builder -> {
            builder.serializers(new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DATE_TIME_PATTERN)));
            builder.deserializers(new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DATE_TIME_PATTERN)));
        };
    }
}

【注】

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

     参考文章:SpringBoot中对LocalDateTime进行格式化并解析_流烟默的博客-CSDN博客_localdatetime格式化 yyyymmdd注解

SpringBoot 日期转换错误JSON parse error: Cannot deserialize value of type `java.time.LocalDateTime`_Jack魏的博客-CSDN博客

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

SpringBoot做全局的日期格式化LocalDateTime_梁可爱的博客-CSDN博客

SpringBoot中对LocalDateTime进行格式化并解析_流烟默的博客-CSDN博客_localdatetime格式化 yyyymmdd注解

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

@GetMapping("date")
public Object date(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime date) {
    return date;
}

@GetMapping("date2")
public Object date(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate date) {
    return date;
}

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

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

Spring Boot2自动化配置及使用jackson进行json解析_洛阳桥边的博客-CSDN博客

https://www.jianshu.com/p/560e9b114c29

LocalDateTime格式化处理及全局配置_擦肩而过的博客-CSDN博客_localdatetime 格式化

在Spring Boot中格式化JSON日期_盲目的拾荒者的博客-CSDN博客

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1031162.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号