String zoneId = Calendar.getInstance().getTimeZone().toZoneId();
我想得到String[],它有国际标准化组织的代码。"AS“、"AL”、"AU“适用于哪些zoneId?
发布于 2018-03-22 12:41:57
我认为最好的选择是获得这些IANA的文件:
这些文件的条目格式如下:
#codes coordinates TZ comments
AD +4230+00131 Europe/Andorra
AE,OM +2518+05518 Asia/Dubai
AF +3431+06912 Asia/Kabul
如果我没有错,zone1970.tab
是较新的,涵盖了一个时区被多个国家使用的情况,但是您可以检查两者,看看哪一个解决了您的问题。
还有file 3166.选项卡文件,它将国家代码映射到各自的名称。
我不确定Java是否有直接读取这些文件的API,但是从它们的格式来看,阅读它们并找到您想要的信息似乎是很简单的。
**快速说明**:没有必要调用Calendar.getInstance().getTimeZone().toZoneId()
。
如果您想让JVM的默认时区成为ZoneId
对象,只需调用ZoneId.systemDefault()
即可。如果要将区域的ID作为String
(如Europe/Berlin
或America/New_York
),只需调用ZoneId.systemDefault().getId()
即可。
https://stackoverflow.com/questions/49421025
复制相似问题