Ist es möglich, ein Standardmuster für ein bestimmtes Gebietsschema abzurufen, ohne ein von DateFormat.get*Instance()
zurückgegebenes Objekt an eine SimpleDateFormat
zu übergeben?Gibt es eine andere Möglichkeit, Standardmuster für ein bestimmtes Gebietsschema abzurufen?
Ich verstehe, dass in den meisten Fällen alles in Ordnung sein wird, aber es gibt einen Hinweis in javadoc
, here: "Wenn Sie noch mehr Kontrolle über das Format oder Parsing haben wollen (oder Ihren Benutzern mehr Kontrolle geben wollen) Sie können versuchen, die DateFormat
Gießen Sie von der Fabrik Methoden zu einem SimpleDateFormat
. Dies wird für die Mehrheit der Länder funktionieren; nur daran erinnern, es in einen try
Block zu setzen, falls Sie eine ungewöhnliche treffen. "
Also frage ich mich, was soll ich tun, wenn ich "eine ungewöhnliche begegne"?
Codebeispiel:
/**
* 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;
}
Ich bin nicht sicher, ob Sie etwas tun können, wenn Sie "eine ungewöhnliche Begegnung haben", weil es möglicherweise nicht musterbasiert ist. Vor allem, weil ein Entwickler sein eigenes 'DateFormat' über' java.text.spi.DateFormatProvider' bereitstellen kann. –