我读了这篇文章:JDK 8和JRE 8支持的语言环境,它声明:
编号系统可以由带有编号系统ID的语言标签指定
????????????????????????????????????????????????????????????????? ? Numbering System ID ? Numbering System ? Digit Zero Value ? ????????????????????????????????????????????????????????????????? ? arab ? Arabic-Indic Digits ? \u0660 ? ?????????????????????????????????????????????????????????????????
现在,为了证明这一点,我写了以下代码:
import java.text.DecimalFormatSymbols;
import java.text.NumberFormat;
import java.util.Locale;
public class Main
{
public static void main(String[] args)
{
Locale locale = new Locale("ar", "sa", "arab");
DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance(locale);
NumberFormat numberFormat = NumberFormat.getNumberInstance(locale);
System.out.println(dfs.getZeroDigit());
System.out.println(numberFormat.format(123));
}
}
Run Code Online (Sandbox Code Playgroud)
我期待输出是这样的:
0
123
但是,输出如下:
0
123
这样做的主要目的是使JavaFX GUI显示阿拉伯数字而不是英文数字,因为它使用默认语言环境(我可以设置它Locale.setDefault(...)).
所以我的问题是,如何使用区域设置中的编号系统来显示Java中的本地化数字?那么,是否可以在JavaFX上应用它?
我有这个代码
frame.sigdate.setText(new SimpleDateFormat("yyyy/M/d").format(new Date()));
Run Code Online (Sandbox Code Playgroud)
它从我的电脑上用英文数字读取日期。我想要做的是将日期转换为阿拉伯数字。有什么类似的Local.ar吗?我很感激任何帮助。