是否可以检索给定语言环境的默认模式,而无需将返回的对象转换DateFormat.get*Instance()
为 a SimpleDateFormat
?
我知道,在大多数情况下一切都会好起来的,但这里有一条注释javadoc
:“如果您想要对格式或解析有更多的控制权,(或者想要给您的用户更多的控制权),您可以尝试投射DateFormat
你从工厂方法得到一个SimpleDateFormat
。这适用于大多数国家;只要记住把它放在一个try
块中,以防你遇到一个不寻常的。
所以我想知道,万一我“遇到一个不寻常的人”该怎么办?
代码示例:
/**
* Returns '\n'-separated string with available patterns.
* Optional adds appropriate language code to each pattern string.
*
* @param showLanguage Defines if language info is required.
* @return String with available patterns, optional (if showLanguage is set
* to "true") adds appropriate language code to each pattern.
*/
public String getPatternsForAvailableLocales(Boolean... showLanguage) {
/* Array of available locales */
Locale[] locales = DateFormat.getAvailableLocales();
String result = "";
for (Locale locale : locales) {
/* Add language info, if necessary */
if ((showLanguage.length > 0) && (showLanguage[0])) {
result += locale.getLanguage() + '\t';
}
/* Retrieving pattern */
try {
result += ((SimpleDateFormat)
DateFormat.getDateTimeInstance(DateFormat.SHORT,
DateFormat.SHORT, locale)).toPattern();
} catch (ClassCastException e) {
// ******************************** //
// What's up? Is there another way? //
// ******************************** //
}
result += '\n';
}
return result;
}