请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

json反序列化失败

在修改小节数据保存时 时间格式不正确  报错如下:

Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.Date` from String "2020-12-06T07:00:51.000+0000": expected format "yyyy-MM-dd HH:mm:ss"; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.util.Date` from String "2020-12-06T07:00:51.000+0000": expected format "yyyy-MM-dd HH:mm:ss"

 at [Source: (PushbackInputStream); line: 1, column: 141] (through reference chain: com.course.server.dto.SectionDto["createdAt"])]


在dto检查  没有问题 创建时间和修改时间都有注解

@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")



正在回答

3回答

按理只需要在DTO的日期里加个注解就可以了,如下:

https://img1.sycdn.imooc.com//szimg/603c509c0930d9ce08180180.jpg


你试试在前端把日期字段显示出来看看是什么样,应该要是上面的yyyy-MM-dd HH:mm:ss格式

0 回复 有任何疑惑可以回复我~
  • 提问者 RichardChang #1
    我是有主解的  ,只是不晓得怎么显示
    回复 有任何疑惑可以回复我~ 2021-03-01 10:42:03
  • 提问者 RichardChang #2
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
        private Date createdAt;
    回复 有任何疑惑可以回复我~ 2021-03-01 10:48:52
  • 甲蛙 回复 提问者 RichardChang #3
    在前端表格里加一列createdAt,把日期列显示出来
    回复 有任何疑惑可以回复我~ 2021-03-02 11:06:39
提问者 RichardChang 2021-03-01 12:40:11

@JsonFormat(pattern="yyyy-MM-dd'T'HH:mm:ss",timezone = "GMT+8")

解决!

0 回复 有任何疑惑可以回复我~
甲蛙 2021-02-19 11:55:11

这个报错意思是,期望的格式是yyyy-MM-dd HH:mm:ss,而你传进来是2020-12-06T07:00:51.000+0000,你把这个时间在前端格式化成yyyy-MM-dd HH:mm:ss格式的字符串,再传到后端试试

0 回复 有任何疑惑可以回复我~
  • 提问者 RichardChang #1
    根据逻辑,只有在修改的时候报错,添加可以正常的进行,也就是说 从数据库读出来的数据格式不正确,应该用注解DateTimeFormat吧?我有点不确定
    回复 有任何疑惑可以回复我~ 2021-03-01 10:06:24
  • 提问者 RichardChang #2
    前端需要怎么修改格式呢?
    回复 有任何疑惑可以回复我~ 2021-03-01 10:06:58
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信