我有一个我想让用户选择的时区列表。所以,我想我可以拨打java.time.ZoneId.getAvailableZoneIds()
并在其上使用方法getDisplayName
。这导致了许多重复的条目,如
中欧时间
即使我添加了时区偏移量,它们也不会是无情的。但是,ZoneId
的ID会区分条目,但如何对其进行本地化? ID始终为英文,如
欧洲/罗马
答案 0 :(得分:6)
通过调用getDisplayName
实例上的ZoneId
,可以获得显示名称的本地化版本。这需要迭代getAvailableZoneIds()
:
ZoneId.getAvailableZoneIds().stream()
.map(ZoneId::of)
.map(zid -> zid.getDisplayName(TextStyle.FULL, Locale.GERMAN))
.distinct()
.forEach(System.out::println);
请注意TextStyle
参数更改每个区域标题和.distinct()
方法的大小以获得唯一结果。