【问题标题】:Is there an already existing i18n time unit list in java?java中是否已经存在i18n时间单位列表?
【发布时间】:2015-09-01 12:20:12
【问题描述】:

Java 处理 DateFormatSymbols 允许根据给定的语言环境生成星期几。时间单位(秒,分钟......)是否有相同的机制?

到目前为止,我只找到java.util.concurrent.TimeUnitjava.time.temporal.ChronoUnit 处理英文列表。但没有本地化版本。

注意:我只对“vanilla”java7 的功能感兴趣(我宁愿创建自己的系统也不愿加载完整的 api)

【问题讨论】:

  • 我认为this 是你所需要的
  • @karimmohsen 确实如此,但它对于我的需要来说太完整了。我更新了我的问题
  • 你可以使用 Java 8 还是需要 Java 7?
  • 现在,我需要一个 java7 解决方案,但我总是很想看到 java8 的新功能

标签: java internationalization java-7


【解决方案1】:

在 Java 8 中有 java.time.temporal.ChronoField#getDisplayName(Locale)

Locale fr = Locale.FRENCH;
System.out.println(ChronoField.HOUR_OF_DAY.getDisplayName(fr));
System.out.println(ChronoField.MINUTE_OF_HOUR.getDisplayName(fr));
System.out.println(ChronoField.SECOND_OF_MINUTE.getDisplayName(fr));

打印

heure
minute
seconde

【讨论】:

  • 虽然有用,但问题是关于 ChronoUnit 和 TimeUnit,而不是 ChronoField。我不知道从 ChronoUnit/TimeUnit 到 ChronoField 的简单方法。
  • @Necreaux OP 想要本地化时间单位名称,如“秒”、“分钟”,即。将它们翻译成当地语言; fxm 指出 TimeUnit 和 ChronoUnit 仅提供英文名称列表,这不是他想要的。所以它是关于翻译,而不是关于特定的常量或枚举。
  • @Necreaux ChronoFields 的问题在于,显然并非所有这些都是可本地化的。并且一些重要的单位不可用,因为这个枚举有不同的目的。您将如何使用 ChronoField 显示“3 周”?特别是,您会为此使用哪个 ChronoField?
猜你喜欢
  • 2018-06-03
  • 1970-01-01
  • 1970-01-01
  • 2011-04-23
  • 1970-01-01
  • 1970-01-01
  • 2011-11-21
  • 1970-01-01
  • 2017-05-01
相关资源
最近更新 更多