Java 如何在使用ICU4j格式化内容时不使用区域设置数字
我最近升级到Java8,遇到了一个日期格式化的“问题”。JDK 8允许为某些g11n/i18n函数使用提供程序,如果类路径上有ICU,它应该会选择它。这并不是一个真正的问题,而是一个意外的曲线,我的大多数函数都和前面的一样工作 我想显示今天的日期,但要使用区域设置的日期格式、十进制分隔符等。这很好,但是当我使用具有不同数字集的特定区域设置时,例如ar\u OM,它使用a,我会格式化日期,但也会使用此数字系统中的数字 代码: 我希望看到它打印出来2015/04/11,但它打印出来的是/٠٤/Java 如何在使用ICU4j格式化内容时不使用区域设置数字,java,internationalization,globalization,icu4j,Java,Internationalization,Globalization,Icu4j,我最近升级到Java8,遇到了一个日期格式化的“问题”。JDK 8允许为某些g11n/i18n函数使用提供程序,如果类路径上有ICU,它应该会选择它。这并不是一个真正的问题,而是一个意外的曲线,我的大多数函数都和前面的一样工作 我想显示今天的日期,但要使用区域设置的日期格式、十进制分隔符等。这很好,但是当我使用具有不同数字集的特定区域设置时,例如ar\u OM,它使用a,我会格式化日期,但也会使用此数字系统中的数字 代码: 我希望看到它打印出来2015/04/11,但它打印出来的是/٠٤/
有没有办法让它不改变数字系统/符号,但仍然提供特定于区域设置的格式?有一个特定于ICU4j的修复程序,即使用
@numbers=latn
作为区域设置的变体/脚本
以下是一些细节:
Locale arOmLocale = new Locale("ar", "OM");
DateFormat df = DateFormat.getDateInstance(DateFormat.DEFAULT, arOmLocale);
System.out.println(df.format(new Date()));