Mil*_*rer 6 java locale simpledateformat
是否可以检索给定语言环境的默认模式,而不会将返回的对象DateFormat.get*Instance()
转换为SimpleDateFormat
?
据我所知,在大多数情况下,一切都会好的,但有一个音符javadoc
,在这里:"如果你想在格式或分析更精确的控制,(或者希望给用户更多的控制),可以尝试铸造DateFormat
你从工厂的方法到a 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;
}
Run Code Online (Sandbox Code Playgroud)
您可以通过执行以下 Java 代码来检索特定语言的日期格式符号:
System.out.println(DateFormatSymbols.getInstance
(new Locale("en_US")).getLocalPatternChars());
System.out.println(DateFormatSymbols.getInstance
(new Locale("nl_NL")).getLocalPatternChars());
Run Code Online (Sandbox Code Playgroud)
在这种特殊情况下,荷兰语的日期格式符号是相同的。
GyMdkHmsSEDFwWahKzZ
GyMdkHmsSEDFwWahKzZ
Run Code Online (Sandbox Code Playgroud)
如果外语符号不同,则可以用外语字符替换简单格式字符串中的英语字符。
该类DateFormatSymbols
至少从 Java 1.4.2 就已经存在。
归档时间: |
|
查看次数: |
2084 次 |
最近记录: |