区域 ID 的本地化名称



我有一个时区列表,我希望用户从中进行选择。所以,我想我可以调用java.time.ZoneId.getAvailableZoneIds()并使用getDisplayName的方法。这会导致很多重复的条目,例如

中欧时间

即使我加上时区偏移量,它们也不是不合时宜的。但是,ZoneId的 ID 可以区分条目,但如何本地化它们?ID 始终为英文,例如

欧洲/罗马

可以通过在

ZoneId实例上调用getDisplayName来获取显示名称的本地化版本。这将需要对getAvailableZoneIds()的结果进行迭代:

ZoneId.getAvailableZoneIds().stream()
        .map(ZoneId::of)
        .map(zid -> zid.getDisplayName(TextStyle.FULL, Locale.GERMAN))
        .distinct()
        .forEach(System.out::println);

请注意用于更改每个区域标题大小的 TextStyle 参数和用于获取唯一结果的 .distinct() 方法。

相关内容

  • 没有找到相关文章

最新更新