如何在Java中获取操作系统时区?

TimeZone.getDefault()返回系统时区,直到它被更改。

样本1:

System.out.println(TimeZone.getDefault()); 

结果:

 Europe/Kaliningrad 

这是系统时区。

样本2:

 TimeZone.setDefault(TimeZone.getTimeZone("Asia/Kolkata")); System.out.println(TimeZone.getDefault()); 

结果:

 Asia/Kolkata 

它不是系统时区,系统时区仍然是欧洲/加里宁格勒。

那么即使在更改默认DateTimeZone之后,如何获得系统时区。

您可以检查系统属性user.timezone:

  System.getProperty("user.timezone") 

在遵循代码之前,将TimeZone.getDefault()的值存储在变量中

 TimeZone.setDefault(TimeZone.getTimeZone("Asia/Kolkata")); System.out.println(TimeZone.getDefault()); 

并在以后使用该变量。