当前位置: 首页 > news >正文

SpringBoot使用LocalDate接收参数解析问题

在接收前端参数时,为了能够最大程度的偷懒,使用过LocalDate来接收了日期,但是发现一个问题。先看代码:

    @GetMapping("test")public Result test(@RequestParam("startDate") LocalDate startDate){}

使用postman测试接口时使用了?startDate=2025/10/10 ,发现可正常工作。但是偶然发现在我的chrome访问相同链接就会报错:Failed to convert value of type 'java.lang.String' to required type 'java.time.LocalDate'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type

查找原因

使用charles抓包发现请求完全一致不存在转义编码,而且用safari也行。

于是java断点,发现了问题LocalDate转换时:

    public static LocalDate parse(CharSequence text, DateTimeFormatter formatter) {Objects.requireNonNull(formatter, "formatter");return formatter.parse(text, LocalDate::from);}

发现了其中的区别:
在这里插入图片描述
在这里插入图片描述

问题发现

chrome配置的默认语音是英文。中文的默认短日期格式支持 yyyy/M/d,而英文的默认短日期格式为 M/d/yy,其中月在前,年份在后(且通常简化为两位,如 “20” 表示 2020)。例如,对于 2020 年 10 月 10 日,期望的输入是 “10/10/20”,只可表示2000-2099年的范围。

解决

所以非常不建议这么书写,还挑访问环境必须不能惯着。正确书写方式,指定:

    @GetMapping("test")public Result test(@RequestParam("startDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)LocalDate startDate){}

ISO默认:

	/*** Common ISO date time format patterns.*/enum ISO {/*** The most common ISO Date Format {@code yyyy-MM-dd} — for example,* "2000-10-31".*/DATE,/*** The most common ISO Time Format {@code HH:mm:ss.SSSXXX} — for example,* "01:30:00.000-05:00".*/TIME,/*** The most common ISO Date Time Format {@code yyyy-MM-dd'T'HH:mm:ss.SSSXXX}* — for example, "2000-10-31T01:30:00.000-05:00".*/DATE_TIME,/*** Indicates that no ISO-based format pattern should be applied.*/NONE}
http://www.dtcms.com/a/486911.html

相关文章:

  • 推荐系统学习笔记(十八)SECR-快手-用户留存建模
  • 自助网站建设技术支持建商城网站需要什么
  • 物联网设备安全接入管理系统的设计与核心功能
  • 在React中使用函数式编程的优点和缺点是什么?
  • UE5 Windows平台下打包Linux
  • UE5 建模专题 - 2:地形模式里的工具栏里的按钮的使用,以及样条点制作道路
  • 基于PHP+Mysql的旅游介绍网
  • HOW - prefetch 二级页面实践
  • OCR:开启档案管理的智能新时代
  • 设计网站官网入口广州做一个网站多少钱
  • 比较好的平面设计网站群晖nas安装wordpress安装
  • 重生之我在大学自学鸿蒙开发第六天-《组件导航》
  • Fragment如何实现Activity栈的压栈和出栈
  • 【组合数学题目】宇宙分解
  • 产品网站开发流程图多店铺开源商城系统
  • 百度收录好的网站免费h5网站制作平台
  • 包头微网站开发wordpress打赏作者插件
  • Rust数据库与工具的选择
  • 淮滨网站制作字体排版网站
  • Spring Boot 3.0 的架构革新:为何弃用 spring.factories 并转向 imports 文件
  • 网站访问密码python报班一般多少钱
  • 渗透测试所需域名和IP信息收集方法
  • TensorFlow2 Python深度学习 - 卷积神经网络示例-使用MNIST识别数字示例
  • LKT4305GM多功能安全芯片
  • 大连网站建设蛇皮果服装设计公司排行
  • 淄博网站建设公司乐达站长工具综合查询官网
  • 7. 从0到上线:.NET 8 + ML.NET LTR 智能类目匹配实战--反馈存储与数据治理:MongoDB 设计与运维
  • C语言基础知识回顾
  • 未来之窗昭和仙君(二十)订单通知提醒——东方仙盟筑基期
  • 网址链接在桌面上创建快捷方式步骤