2013-06-27 261 views
3

在Java中,我使用语言和国家参数 创建语言环境,然后使用适当的日期格式。Java默认语言环境回退

但是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

有你试过'Locale.setDefault()'? – fge

回答

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 
+0

谢谢,它似乎是我在找:) –

0

Locale.getDefault()等于(区域)

+0

不幸的是,它返回错误的语言环境xx_XX –

相关问题