正如你们中的许多人所知,在欧洲我们有夏季和冬季。每年两次,所有欧盟成员国的时钟从冬季切换到夏季(三月的最后一个星期日),然后从夏季切换回冬季(十月的最后一个星期日)(更多信息 here )。现在,欧盟委员会即将提议取消这些时钟更改。
在 Java 中,我们有日历,日历总是知道正确的时区(即 GMT+1 用于夏季,GMT+2 用于冬季)。 Java 是如何管理这个的?而且,如果它发生变化,会对我们的系统产生怎样的影响?
所以,正如我在评论中看到的那样,不应该有任何更改,因为 Java 使用系统时间并且它是由 NTP 设置的,对吧?
我会说 java.util.TimeZone
。
TimeZone
表示时区偏移量,也计算夏令时。
通常,您使用 getDefault
获取一个 TimeZone
,它根据程序运行的时区创建一个 TimeZone
。例如,对于在日本运行的程序,getDefault
根据日本标准时间创建一个 TimeZone 对象
。
您还可以使用 getTimeZone
连同时区 ID 获取 TimeZone
。例如,美国太平洋时区的时区 ID 是“America/Los_Angeles”。因此,您可以获得美国太平洋时间 TimeZone 对象:
TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");