0

我最近升级到 Java 8 并遇到了格式化日期的“问题”。JDK 8 允许提供程序用于某些 g11n/i18n 功能,如果类路径上有 ICU,它应该选择它。这不是一个意想不到的曲线问题,因为我的大部分功能都像以前一样工作。

我想显示今天的日期,但使用语言环境的日期格式、小数点分隔符等。这很好,但是当我使用具有不同数字集的某些语言环境时,例如ar_OM,它使用印度教-阿拉伯语Numeral System,我将日期格式化,但也使用此数字系统中的数字。

代码:

    Locale arOmLocale = new Locale("ar", "OM");
    DateFormat df = DateFormat.getDateInstance(DateFormat.DEFAULT, arOmLocale);
    System.out.println(df.format(new Date()));

我希望看到它打印出2015/04/11,但是它打印出 ١١‏/٠٤‏/ ٢٠١٥

有没有办法让它不改变数字系统/符号,但仍然提供特定于语言环境的格式?

4

1 回答 1

0

有一个 ICU4j 特定的修复程序,即@numbers=latn在语言环境中将 用作变体/脚本。

此处列出了一些详细信息:区域设置的格式化

于 2015-09-09T19:20:04.760 回答