如果您的输入代表 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)
)。