我正在尝试使用这样的注释对以下日期-时间字符串进行反序列化'6/18/20215:25:57PM':
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy HH:mm:ss")
@JsonProperty("DateModified")
private LocalDateTime dateModified;
{
"XXXX": "....",
"XXXX1": "....",
"DateModified": "6/18/2021 5:25:57 PM",
但是得到以下错误消息:
com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type
`java.time.LocalDateTime` from String "6/18/2021 5:25:57 PM": Failed to deserialize
java.time.LocalDateTime: (java.time.format.DateTimeParseException) Text '6/18/2021 5:25:57 PM' could not be parsed at index 0
知道我缺了什么吗?
谢谢
问题出现在"dd-MM-yyyy HH:mm:ss"
格式中,"6/18/2021 5:25:57 PM"
对其无效,因此您必须对其进行三次更改才能解析字符串日期:
- 用
/
改变-
- 因为
18
肯定是一个月中的一天,所以你的模式应该从M/dd/yyyy
而不是dd-MM-yyyy
开始 - 您的小时数是从1到12,因为
PM
的存在,因此您必须在数小时内使用h
而不是H
,并在AM/PM
情况下的模式末尾添加a
因此,"6/18/2021 5:25:57 PM"
字符串日期的一个有效模式是"M/dd/yyyy h:mm:ss a"
模式,您可以查看DateTimeFormatter
页面以获得更详细的解释。