我最近升级到 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,但是它打印出 ١١/٠٤/ ٢٠١٥
有没有办法让它不改变数字系统/符号,但仍然提供特定于语言环境的格式?