java.time的区域名称的官方列表在哪里?
是否有用于以下各项的区域名称的正式列表:
zoneId = ZoneId.of("America/New_York")
或者java.time.ZoneId是否可以生成我可以使用的列表本身?
我用它来将即时转换为时间的字符串表示形式,例如:
ZoneDateTime.ofInstant(instant, zoneId).format(DateTimeFormatter.ofPattern("..."))
是否有用于以下各项的区域名称的正式列表:
zoneId = ZoneId.of("America/New_York")
或者java.time.ZoneId是否可以生成我可以使用的列表本身?
我用它来将即时转换为时间的字符串表示形式,例如:
ZoneDateTime.ofInstant(instant, zoneId).format(DateTimeFormatter.ofPattern("..."))
只需使用 getAvailableZoneIds 方法即可。
获取可用区域 ID 的集合。
此集包括所有可用的基于区域的 ID 的字符串形式。基于偏移的区域 ID 不包括在返回的集中。可以将 ID 传递给 of(String) 以创建 ZoneId。
Set<String> zoneIds= ZoneId.getAvailableZoneIds();
for (String zone : zoneIds) {
System.out.println(zone);
}
正如其他答案所说,在代码中获取此列表的方法是使用ZoneId.getAvailableZoneIds()
。
但是,如果您只是浏览想要一个“官方”列表,则数据可从IANA获得,但这是针对机器的格式。仔细阅读数据的最简单方法是在维基百科上。(通常的免责声明是维基百科...)
您还应该知道,如果目标 JRE 中最近未更新对 IANA/维基百科数据所做的更改,则该数据可能不存在。