解决日期转换异常 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

将日期字符串转成日期格式

猜你喜欢

转载自blog.csdn.net/qq_38423256/article/details/128938440