在尝试使用DateTimePicker 日期时间选择器时,传回后台的数据遇到了不能正确解析的问题。
报错信息:
2024-07-17 10:31:48.651 ERROR 21548 — [io-8080-exec-21] c.w.common.exception.RRExceptionHandler : JSON parse error: Cannot deserialize value of type java.util.Date
from String “2024-07-26T15:00:00.000Z”: 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 “2024-07-26T15:00:00.000Z”: expected format “yyyy-MM-dd HH:mm:ss”
at [Source: (PushbackInputStream); line: 1, column: 124] (through reference chain: com.wedu.modules.sys.entity.BookDepositoryEntity[“lauTime”])
前端控制台打印出该时间的格式:
前端代码:
后端代码:
/**
上架时间
**/
@TableField("lau_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date lauTime;
解决方案:
在前端代码中加入:value-format=“yyyy-MM-dd HH:mm:ss”,如图:
出现问题的原因:
没法将一个带有时区信息的日期时间字符串(“2024-08-28T16:00:00.000Z”)解析为 Java 的 java.util.Date
类型
知识点:
1.value-format
2.注意区分:format属性
这个属性只是控制了输入框里显示的时间日期,但它实际传输的时候可不是这样,要想绑定格式还是要使用value-format!