異常
com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.util.Date` from String "2022-06-21 00:00:00": not a valid representation (error: Failed to parse Date value '2022-06-21 00:00:00': Cannot parse date "2022-06-21 00:00:00": while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSSZ', parsing fails (leniency? null))
解決方案
在你反序列化的java對象中Date類型的屬性加上注解
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
擴充知識
yyyy-MM-dd’T’HH:mm:ss.SSS Z這種格式是ISO8601的規定的時間格式
其中T表示日期跟時間的分隔
SSS表示毫秒數
Z表示0時區
如果我們通過swagger構造入參時間屬性時,可以通過浏覽器控制台
new Date().getTime()
,這個将會傳回一個時間戳(從1970年1月1日到現在的毫秒數),我們可以直接把這個數字作為時間屬性,後端會将其轉為對應的日期對象,比構造那麼一個複雜格式的字元串要快速很多