Jackson使用+和t字符反序列化日期字符串



我在反序列化Json字符串日期时遇到问题:2020-09-30T07:00+02:00我收到错误:

com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.time.LocalDate` from String "2020-09-30T07:00:00+02:00": Failed to deserialize java.time.LocalDate: (java.time.format.DateTimeParseException) Text '2020-09-30T07:00:00+02:00' could not be parsed, unparsed text found at index 19

它看起来像+是一个未被接受的字符。Pojo:

@JsonProperty("Date")
@JsonDeserialize(using = LocalDateDeserializer.class)
public LocalDate date;

你知道我如何将这个字符串映射到localdate吗?

这应该能在中工作

@JsonProperty("Date")
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ssXXX")
public LocalDate date;

请在此处检查日期格式:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

此外,您应该使用另一种类型,如ZonedDateTime或java.util.Date,而不是LocalDate来获取小时、分钟和秒。

最新更新