如何从java中的时区ID获取国家/地区代码?

时间:2018-03-22 05:15:40

标签: java timezone

 String zoneId = Calendar.getInstance().getTimeZone().toZoneId();

我想获得具有国家ISO代码的String [],例如zoneId适用的“AS”,“AL”,“AU”是什么?

1 个答案:

答案 0 :(得分:3)

我认为最好的选择是获取这些IANA的文件:

这些文件的格式如下:

organization repo:
    - serverappfolder
    - desktopclientapp
    - databaseapi

如果我没错,#codes coordinates TZ comments AD +4230+00131 Europe/Andorra AE,OM +2518+05518 Asia/Dubai AF +3431+06912 Asia/Kabul 更新,涵盖多个国家/地区使用时区的案例,但您可以查看两者并查看哪一个解决了您的问题。

还有the iso3166.tab file将国家/地区代码映射到各自的名称。

我不确定Java是否有直接读取这些文件的API,但查看它们的格式,阅读它们并查找所需信息似乎很简单。


快速记录:无需拨打zone1970.tab

如果您希望JVM的默认时区为Calendar.getInstance().getTimeZone().toZoneId()对象,请致电ZoneId。如果您希望区域的ID为ZoneId.systemDefault()(例如StringEurope/Berlin),请拨打America/New_York