的Android缺少一些时区,在Java中

问题描述:

可在的Android的Android缺少一些时区,在Java中

Timezone.getAvailableIds();

只返回580个ID。

的Java(均为同一版本1.7)

Timezone.getAvailableIds()

回报623个IDS。

一些失踪的ID是

IST

PST

ECT

JST

任何帮助?

+1

你对“这个帮助”有什么意思?它是如何引起问题的,你如何使用这个时区? –

+0

是的..我使用TimeZone.getTimeZone(userTZ);获取时区并格式化时间。如果userTZ是任何缺失的ID,则默认情况下它会返回GMT。它会导致时间问题,我会显示时间。 –

+0

这些简称(IST,PST和其他)是[含糊而不是标准](https://*.com/a/18407231/7605325),并且由于逆向兼容性的原因而支持其中一些名称。例如IST可以是印度标准时间,爱尔兰标准时间或以色列标准时间。只允许[IANA时区名称](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)(总是采用“亚洲/加尔各答”或“欧洲/柏林”的“地区/城市”格式) – 2017-10-17 10:48:57

为了与JDK 1.1.x的兼容性,一些其他三个字母的时区 的ID(例如, “PST”, “CTT”, “AST”)也支持。

请注意单词“some”,这意味着在Android中不支持所有三字母时区ID。这就是为什么您只能获得580个ID而不是623.支持的时区ID取决于您使用的SDK版本。

另外,还要注意表达的这种方式已经过时:

但是,建议使用它们,因为相同的缩写经常用于多个时区(例如 ,“CST”可以是美国 “*标准时间”和“中国标准时间”),然后Java平台才能识别其中的一个。

参考:https://developer.android.com/reference/java/util/TimeZone.html

我希望这回答了你的问题。

+0

谢谢你的回答!将检查自定义ID。 –