解决日期转换异常 JSON parse error: Cannot deserialize value of type `java.util.Date` from String总结
不积跬步,无以至千里;不积小流,无以成江海 —–致奋斗的自己
场景:
前端向后端传日期参数,后端接收问题,在一次遇到这种低级问题总结一下。
文档参考 :
Spring Framework 中文文档 – Spring Framework 4.3.21.RELEASE Reference | Docs4devSpring 是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。https://www.docs4dev.com/docs/zh/spring-framework/4.3.21.RELEASE/reference/
Spring中文官方文档 – hviger – 博客园Spring Boot 中文文档 https://www.docs4dev.com/docs/zh/spring-boot/1.5.9.RELEASE/reference Spring Framewohttps://www.cnblogs.com/zhaojinhui/p/16963459.html
前端日期格式:yyyy-MM-dd HH:mm:ss

正确方式:
方式一:后端用date类型接收

方式二:后端date类型字段只使用@JsonFormat(locale = “zh”, timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)接收

错误方式:
方式一:后端date类型字段只使用@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)接收,请求时直接报错。

正确使用@DateTimeFormat注解
方式一:接收对象上加@RequestBody且搭配@JsonFormat使用


方式二:接收对象不加@RequestBody且Date类型字段仅用@DateTimeFormate



注意:这里使用的请求体是form-date,如果使用请求体json,使用如下请求后端date类型字段将接收不到数据

总结:
前端日期字符串向后端传递后端用date类型字段接收时
1.接收对象用@RequestBody并搭配@DateTimeFormat和@JsonForma
2.接收对象用@RequestBody搭配@JsonForma将日期字符串转成日期格式
3.接收对象不用用@RequestBody修饰,请求体form-data类型(json类型不可以)是可以通过@DateTimeFormat
将日期字符串转成日期格式
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/fd6a28a2db.html
