解决日期转换异常HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.Date` from String
Java •
项目发生报错,需要从前端传入一个日期字符串(格式YYYY-MM-DD),后端Bean类日期属性(java.util.Date)接收,发生JSON转换异常问题,异常情况如下:
org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.Date` from String "2022-08-11": not a valid representation (error: Failed to parse Date value '2022-08-11': Unparseable date: "2022-08-11"); nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.util.Date` from String "2022-08-11": not a valid representation (error: Failed to parse Date value '2022-08-11': Unparseable date: "2022-08-11") at [Source: (PushbackInputStream); line: 1, column: 189] (through reference chain: io.renren.plat.dto.PlatRefundDTO["settlementTime"]) at
分析:
从异常信息来看,可能是日期型数据被序列化为JSON之后,无法转换成java.util.date类型,需要显式的指定一个日期转换格式。
解决办法
在对应的bean日期属性上增加注解 @JsonFormat 注解

这里解释一下:@JsonFormat(locale=“zh”, timezone=“GMT+8”, pattern=“yyyy-MM-dd”)
pattern:是你需要转换的时间日期的格式
timezone:是时间设置为东八区,避免时间在转换中有误差