String zoneId = Calendar.getInstance().getTimeZone().toZoneId();
Run Code Online (Sandbox Code Playgroud)
我想获取具有国家 ISO 代码的 String[],例如 zoneId 适用的“AS”、“AL”、“AU”?
我认为最好的选择是获取这些 IANA 的文件:
这些文件的条目格式如下:
#codes coordinates TZ comments
AD +4230+00131 Europe/Andorra
AE,OM +2518+05518 Asia/Dubai
AF +3431+06912 Asia/Kabul
Run Code Online (Sandbox Code Playgroud)
如果我没记错的话,zone1970.tab
它是较新的,涵盖了多个国家/地区使用时区的情况,但您可以检查两者并查看哪一个可以解决您的问题。
还有iso3166.tab 文件,将国家/地区代码映射到各自的名称。
我不确定Java是否有一个API可以直接读取这些文件,但是看看它们的格式,读取它们并找到你想要的信息似乎很简单。
如果您希望 JVM 的默认时区作为ZoneId
对象,只需调用ZoneId.systemDefault()
. 如果您希望区域的 ID 为 a String
(例如Europe/Berlin
或America/New_York
),只需调用ZoneId.systemDefault().getId()
。
归档时间: |
|
查看次数: |
5065 次 |
最近记录: |