在Java中,我使用Language和Country参数创建Locale 然后使用适当的日期格式。
但是,Java不支持所有Language_Country组合和后备到默认语言环境格式(在我的情况下为en_US)。
有没有办法确定是否发生了后备?
E.g:
当我使用Locale locale = new Locale("xx","xx");
然后
((SimpleDateFormat)DateFormat.getDateInstance(DateFormat.SHORT,locale)).toLocalizedPattern();
返回M/d/yy
,以便它回退到en_US。
所以我需要像
这样的东西 locale.isDefault
答案 0 :(得分:1)
您可以检查区域设置是the available locales之一:
Set<Locale> locales = new HashSet<>();
Collections.addAll(locales, Locale.getAvailableLocales());
Locale locale = new Locale("xx", "xx");
System.out.println(locales.contains(locale)); //prints false
locale = new Locale("fr", "FR");
System.out.println(locales.contains(locale)); //prints true
答案 1 :(得分:0)
Locale.getDefault()。等于(区域)