反序列化器使用Jackson的字符串数据时间



我正在尝试使用这样的注释对以下日期-时间字符串进行反序列化'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"对其无效,因此您必须对其进行三次更改才能解析字符串日期:

  1. /改变-
  2. 因为18肯定是一个月中的一天,所以你的模式应该从M/dd/yyyy而不是dd-MM-yyyy开始
  3. 您的小时数是从1到12,因为PM的存在,因此您必须在数小时内使用h而不是H,并在AM/PM情况下的模式末尾添加a

因此,"6/18/2021 5:25:57 PM"字符串日期的一个有效模式是"M/dd/yyyy h:mm:ss a"模式,您可以查看DateTimeFormatter页面以获得更详细的解释。

相关内容

  • 没有找到相关文章

最新更新