这是两个时区-ZoneId zone1 = ZoneId.of("America/Panama");
ZoneId zone2 = ZoneId.of("Asia/Taipei");
设置日期-LocalDateTime dateTime = LocalDateTime.of(2019, 04, 11, 10, 5);
现在,设置第一个时区-ZonedDateTime panamaDateTime = ZonedDateTime.of(dateTime, zone1);
设置第二时区-ZonedDateTime taipeiDateTime = panamaDateTime.withZoneSameInstant(zone2);
获取以秒为单位的时区差异-taipeiDateTime.getOffset().getTotalSeconds()
示例import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class Demo {
public static void main(String[] args) {
ZoneId zone1 = ZoneId.of("America/Panama");
ZoneId zone2 = ZoneId.of("Asia/Taipei");
LocalDateTime dateTime = LocalDateTime.of(2019, 04, 11, 10, 5);
ZonedDateTime panamaDateTime = ZonedDateTime.of(dateTime, zone1);
ZonedDateTime taipeiDateTime = panamaDateTime.withZoneSameInstant(zone2);
System.out.println("Difference between two time zones in seconds = "+taipeiDateTime.getOffset().getTotalSeconds());
}
}
输出结果Difference between two time zones in seconds = 28800