只需要传入两个地区和当前地区的时间,即可转化到指定地区的时间,并且会处理好夏令时带来的影响。
//例子使用的时间为2022-04-02 12:00:00
LocalDateTime localDateTime = LocalDateTime.of(2022,4,2,12,0);
ZoneId zoneId = ZoneId.of("Asia/Shanghai");
ZonedDateTime zdt = ZonedDateTime.of(localDateTime,zoneId);
ZonedDateTime zdtGuam = zdt.withZoneSameInstant( ZoneId.of("America/New_York"));
ZoneOffset offset = zdtGuam.getOffset();
System.out.println("offset = " + offset);
LocalDateTime dateTime = zdtGuam.toLocalDateTime();
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String format = dateTimeFormatter.format(dateTime);
System.out.println("format = " + format);