2010-05-11 44 views

回答

2

是的。

TimeZone.getAvailableIDs()返回所有已知时区,并且与区域设置无关。

我感兴趣的是你为什么认为它可能会因语言环境而有所不同。如Gunslinger47所指出的那样,时区偶尔会发生变化,您需要更新为新的JDK/JRE或修补旧的JDK/JRE,但这又与语言环境无关。

+0

不是说兰斯应该强调价值。现存的时区数量一直在变,最近为2010年3月。 – Gunslinger47 2010-05-11 20:47:12

+0

但时区规则与区域设置无关,这就是为什么我编辑了我的答案,问他为什么认为它可能会有所不同。 – SteveD 2010-05-11 20:48:38

+0

我对Java并不是非常有经验,而且我刚刚看完Locale.getAvailableLocales()后会根据设备(我正在编写Android代码)手动返回不同数量的语言环境。我不认为TimeZone.getAvailableIDs()会根据.. well ..返回不同的时区...但是我只是想确定一下,而且我知道在Java中更有经验的人会比我更自信地回答可以。 – lance 2010-05-11 21:23:47

0

如果您的计算机在运行完全相同的Java版本的不同时区中运行,则TimeZone.getAvailableIDs();将在这些计算机上返回相同的结果。

但是,列表可以(并且)在不同的Java版本之间(甚至在不同的更新版本之间)改变。

你为什么问这个问题;你想解决你的问题的根本问题是什么?我认为编写一个对TimeZone.getAvailableIDs();的结果具有期望的程序并不是一个好主意,因为Java API没有对此做出任何承诺。

+0

我遇到了将Java的时区映射到第三方系统支持的子集列表的需求。我不再对付这个问题,但同时也想到了这个问题。 – lance 2010-05-12 13:29:48

相关问题