首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从java的时区ID中获取国家代码?

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

Stack Overflow用户
提问于 2018-03-22 05:15:40
回答 1查看 4K关注 0票数 3
代码语言:javascript
运行
复制
 String zoneId = Calendar.getInstance().getTimeZone().toZoneId();

我想得到String[],它有国际标准化组织的代码。"AS“、"AL”、"AU“适用于哪些zoneId?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-22 12:41:57

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

这些文件的条目格式如下:

代码语言:javascript
运行
复制
#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/BerlinAmerica/New_York),只需调用ZoneId.systemDefault().getId()即可。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49421025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档