最近在做一个有关spring boot 的项目,在做一个添加操作时遇到了一个问题 。
传入了一个时间类型:Timestamp 类型的字段,包是:java.sql.Timestamp;
客户端发送json对象到后台就会报错,翻译为无法解析字符串时间格式java.sql.Timestamp的值,解析失败!!!
报错代码:
Cannot deserialize value of type `java.sql.Timestamp` from String "2020-07-08 16:53:40": not a valid representation
(error: Failed to parse Date value '2020-07-08 16:53:40': Cannot parse date "2020-07-08 16:53:40": while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSSX', parsing fails (leniency? null));
nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.sql.Timestamp` from String "2020-07-08 16:53:40":
not a valid representation (error: Failed to parse Date value '2020-07-08 16:53:40': Cannot parse date "2020-07-08 16:53:40": while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSSX', parsing fails (leniency? null))
错误的原因是:
客户端发送的格式是“yyyy-MM-dd HH:mm:ss”,而服务端接收的是java.sql.Timestamp类型的,所以导致类型转换异常。
解决的方法:
在配置文件添加以下代码即可:我的是yaml格式
## 前端UI时区(GMT+8)
jackson:
time-zone: Hongkong
date-format: yyyy-MM-dd HH:mm:ss