我有以下...public static final String DATE_PATTERN = "yyyy-MM-dd'T'hh:mm:ss.SSSZ";@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DATE_PATTERN)private LocalDate created;return this.restTemplate.postForObject(url, entity, SearchResult.class);当我运行代码时,它会出现以下错误...java.time.DateTimeException: Invalid value for ClockHourOfAmPm (valid values 1 - 12): 13 at java.base/java.time.temporal.ValueRange.checkValidValue(ValueRange.java:311) ~[na:na] at java.base/java.time.temporal.ChronoField.checkValidValue(ChronoField.java:717) ~[na:na]如何将其反序列化为 LocalDate?常规 Java7 日期工作正常。最终解决方案看起来像这样public static final String DATE_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";public class LocalDateDeserializer extends StdDeserializer<LocalDate>{ protected LocalDateDeserializer(){ super(LocalDate.class); } @Override public LocalDate deserialize(JsonParser parser, DeserializationContext context) throws IOException { return LocalDate.parse(parser.readValueAs(String.class), DateTimeFormatter.ofPattern(JiraService.DATE_PATTERN)); }}public class LocalDateSerializer extends StdSerializer<LocalDate> { public LocalDateSerializer() { super(LocalDate.class); } @Override public void serialize(LocalDate value, JsonGenerator generator, SerializerProvider provider) throws IOException { generator.writeString(value.format(DateTimeFormatter.ofPattern(JiraService.DATE_PATTERN))); }}@JsonDeserialize(using = LocalDateDeserializer.class)@JsonSerialize(using = LocalDateSerializer.class)private LocalDate created;
添加回答
举报
0/150
提交
取消