springboot后端使用LocalDate接收日期的问题解决

 更新时间:2023年09月26日 09:07:13   作者:鲸渔  
在做Java开发时,肯定会碰到传递时间参数的情况,本文主要介绍了springboot后端使用LocalDate接收日期的问题解决,具有一定的参考价值,感兴趣的可以了解一下

报错内容

Failed to convert property value of type 'java.lang.String' to required type 'java.time.LocalDate' for property 'xxxx';
 nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.time.LocalDate] for value '2021-10-03';
  nested exception is java.lang.IllegalArgumentException: Parse attempt failed for value [2021-10-03]

当后端的实体类 使用jdk8的时间时,会报以上的问题

这个时候就需要使用 @DateTimeFormat(pattern = “yyyy-MM-dd”) 注解

该注解中的pattern 要和前端传过来的日期格式保持一致

如果是 LocalDateTime 可以使用 @DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)

这是反序列化时的做法,当序列化时 也就是后端传给前端时,转换时间格式使用 @JsonFormat(pattern = “yyyy-MM-dd”, timezone = “GMT+8”) 注解

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate beginTime;

也可以设置全局

    @Bean
    @Primary
    @ConditionalOnMissingBean(ObjectMapper.class)
    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
        ObjectMapper objectMapper = builder.createXmlMapper(false).build();
        // 全局配置序列化返回 JSON 处理
        SimpleModule simpleModule = new SimpleModule();
        //封装类型 Long ==> String
        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
        simpleModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)));
        simpleModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)));
        simpleModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)));
        simpleModule.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)));
        simpleModule.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN)));
        simpleModule.addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN)));
        objectMapper.registerModule(simpleModule);
        objectMapper.setDateFormat(new SimpleDateFormat(DatePattern.NORM_DATETIME_PATTERN));
        objectMapper.setTimeZone(TimeZone.getTimeZone("GMT+8"));
        return objectMapper;
    }

到此这篇关于springboot后端使用LocalDate接收日期的问题解决的文章就介绍到这了,更多相关springboot LocalDate接收日期内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java图片上传实现代码

    Java图片上传实现代码

    这篇文章主要为大家详细介绍了Java图片上传实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • Java postgresql数组字段类型处理方法详解

    Java postgresql数组字段类型处理方法详解

    这篇文章主要介绍了Java postgresql数组字段类型处理方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • idea前后跳转箭头的快捷键

    idea前后跳转箭头的快捷键

    这篇文章主要介绍了idea前后跳转箭头的快捷键,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Java日志框架之logback使用详解

    Java日志框架之logback使用详解

    这篇文章主要介绍了Java日志框架之logback使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Eclipse+Java+Swing实现斗地主游戏(代码)

    Eclipse+Java+Swing实现斗地主游戏(代码)

    这篇文章主要介绍了Eclipse+Java+Swing实现斗地主游戏并附上详细的代码实现,正在学习的你可以当小练习练练,希望对你有所帮助
    2022-01-01
  • Java 添加、更新和移除PDF超链接的实现方法

    Java 添加、更新和移除PDF超链接的实现方法

    PDF超链接用一个简单的链接包含了大量的信息,满足了人们在不占用太多空间的情况下渲染外部信息的需求。这篇文章主要介绍了Java 添加、更新和移除PDF超链接的实现方法,需要的朋友可以参考下
    2019-05-05
  • Java大数运算BigInteger与进制转换详解

    Java大数运算BigInteger与进制转换详解

    这篇文章主要介绍了Java大数运算BigInteger与进制转换详解,Java 提供了 BigInteger(大整数)类和 BigDecimal(大浮点数)类用于大数运算,这两个类都继承自 Number 类(抽象类),由于 BigInteger 在大数运算中更常见,需要的朋友可以参考下
    2023-09-09
  • mybatis foreach遍历LIST读到数据为null的问题

    mybatis foreach遍历LIST读到数据为null的问题

    这篇文章主要介绍了mybatis foreach遍历LIST读到数据为null的问题,具有很好的参考价值,希望对大家有所帮助。
    2022-02-02
  • Java项目的目录结构详解

    Java项目的目录结构详解

    本文主要介绍了Java项目的目录结构详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • SpringBoot WebSocket实时监控异常的详细流程

    SpringBoot WebSocket实时监控异常的详细流程

    最近做了一个需求,消防的设备巡检,如果巡检发现异常,通过手机端提交,后台的实时监控页面实时获取到该设备的信息及位置,然后安排员工去处理。这篇文章主要介绍了SpringBoot WebSocket实时监控异常的全过程,感兴趣的朋友一起看看吧
    2021-10-10

最新评论