Java程序以秒为单位获取两个时区之间的时差
这是两个时区-
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