为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Jackson 和 RestTemplate 将 24 小时日期字符串反序列化为

如何使用 Jackson 和 RestTemplate 将 24 小时日期字符串反序列化为

慕沐林林 2021-09-15 15:37:48
我有以下...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;
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 367 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信