如果您的输入代表 aZonedDateTime并且您想将其转换为 a LocalDateTime,您可以执行以下操作。
我创建了一个带有LocalDateTime字段的示例类:
public class ZoneToLocalTest {
@JsonDeserialize(using = CustomZonedToLocalDeserializer.class)
private LocalDateTime date;
// getter and setter
}
并且还创建了反序列化器类:
public class CustomZonedToLocalDeserializer extends LocalDateTimeDeserializer {
public CustomZonedToLocalDeserializer() {
super(DateTimeFormatter.ISO_ZONED_DATE_TIME);
}
}
我已经使用 input 进行了测试,2017-07-05T14:10:45.432+01:00[Europe/London]结果是LocalDateTime带有 value 2017-07-05T14:10:45.432。
如果输入的格式不同,那么您需要在CustomZonedToLocalDeserializer类中使用这种格式(而不是使用DateTimeFormatter.ISO_ZONED_DATE_TIME,而是使用DateTimeFormatter.ofPattern(pattern))。