[英]Can not deserialize value of type java.time.LocalDateTime from String
[英]JSON parse error: Cannot deserialize value of type `java.time.LocalDateTime` from String
我正在向具有更新日期屬性的外部服務發送請求
@UpdateTimestamp
@Column(name = "updated_date")
private LocalDateTime updatedDate;
當我在 DTO 中收到響應時,我正在嘗試像這樣格式化 LocalDateTime 屬性
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd'T'HH:mm:ss")
private LocalDateTime updatedDate;
但我在 Postman 中遇到錯誤
"message": "JSON parse error: Cannot deserialize value of type `java.time.LocalDateTime` from String \"2020-04-14T10:45:07.719\": Text '2020-04-14T10:45:07.719' could not be parsed at index 14; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.time.LocalDateTime` from String \"2020-04-14T10:45:07.719\
輸入字符串中有毫秒,所以你的格式應該是“yyyy-MM-dd'T'HH:mm:ss.SSS”
更新:如果毫秒部分由 1、2、3 位數字組成或者是可選的,您可以使用以下格式:
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss[.SSS][.SS][.S]")
private LocalDateTime updatedTime;
您可以刪除注釋 @JsonFormat 並讓它以默認方式工作。 即使我刪除了毫秒,它對我來說也很好。
@NotNull
@FutureOrPresent(message = ErrorMessages.INVALID_CAMPAIGN_START_DATE)
//@JsonFormat(pattern = "MM/dd/yyyy")
private LocalDateTime campaignStartDate;
JSON 請求:
{ "campaignStartDate" : "2020-12-31T15:53:16",
"campaignExpDate" : "2021-01-24T15:53:16",
}
{
"campaignStartDate" : "2020-12-31T15:53:16.45",
"campaignExpDate" : "2021-01-24T15:53:16.45",
}
{
"campaignStartDate" : "2020-12-31T15:53:16.445",
"campaignExpDate" : "2021-01-24T15:53:16.445",
}
這些 JSON 請求可以正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.