使用ICU4j格式化内容时如何不使用区域设置数字

时间:2015-04-12 02:35:33

标签: java internationalization globalization icu4j

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

我想显示今天的日期,但是使用区域设置的日期格式,小数点分隔符等。这很顺利,但是当我使用某些具有不同数字集的区域设置时,例如 ar_OM < / strong>,使用Hindu-Arabic 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 ,但它打印出11/04 / 2015

有没有办法让它不更改数字系统/符号,但仍然提供特定于区域设置的格式?

1 个答案:

答案 0 :(得分:0)

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

这里列出了一些细节:Formatting for a Locale