我读了这篇文章: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上应用它?
我有来自服务器的日期,格式为="2013-01-20T16:48:43"我的应用程序支持阿拉伯语和英语区域设置.但是当我将语言环境更改为阿拉伯语时,日期不会解析它给我的解析异常.到现在为止我写的是
private static Date parseJsonDate(final String string) throws Exception
{
final String change_Locale = Locale.getDefault().getISO3Language();
if (change_Locale.equalsIgnoreCase("ara"))
{
System.out.println(":: Date :::" + string);
final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", new Locale("ar"));
System.out.println("new date " + format.parse(string));
return format.parse(string);
Run Code Online (Sandbox Code Playgroud) 如果在春季申请中选择的语言是英语时,如何在用户选择的语言为阿拉伯语时使用阿拉伯语日期并使用英语格式的日期?我尝试根据请求将默认语言环境设置为英语和阿拉伯语,但这并没有帮助我获得阿拉伯语的日历api时间(9小时15分钟).