ZonedDateTime.withZoneSameInstant和ZonedDateTime.withZoneSameLocal有什么区别?
假设我有一个 ZonedDateTime:
ZonedDateTime zonedDateTime =
ZonedDateTime.of(LocalDateTime.now(), ZoneId.of("US/Pacific"));
我想知道在柏林是哪个日期/时间。我有两种方法:
zonedDateTime.withZoneSameInstant(ZoneId.of("Europe/Berlin")); // probably this is the right one to get the corresponding date/time in Berlin
zonedDateTime.withZoneSameLocal(ZoneId.of("Europe/Berlin"));
该方法的文档说:“仅当本地日期时间对于新区域无效时,才会更改它...”目前还不清楚这是否真的会发生(任何例子? =))。withZoneSameLocal
它们分别代表哪个日期/时间,有什么区别?