Есть ли другой способ получения шаблона по умолчанию для данной локали?

Можно ли получить шаблон по умолчанию для данной локали, не приводя объект, возвращенный DateFormat.get * Instance () к 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;
}

6
задан Community 23 May 2017 в 12:30
поделиться