3

在 Java 中,我使用 Language 和 Country 参数创建 Locale,然后使用适当的日期格式。

但是 Java 不支持所有 Language_Country 组合和回退到默认语言环境格式(在我的情况下为 en_US)。

有没有办法确定发生了回退?

例如:

当我创建语言环境时Locale locale = new Locale("xx","xx");

然后

((SimpleDateFormat)DateFormat.getDateInstance(DateFormat.SHORT,locale)).toLocalizedPattern();

返回M/d/yy,因此它回退到 en_US。

所以我需要类似的东西

locale.isDefault

4

2 回答 2

1

您可以检查语言环境是否是可用的语言环境之一

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
于 2013-06-27T10:03:42.767 回答
0

Locale.getDefault().equals(locale)

于 2013-06-27T09:55:43.507 回答