Как показать голландский месяц с использованием Joda DateTime

Я пытаюсь показать долгие месяцы. Но месяц печатается на английском языке. Это необходимо для работы с Android API 19 и выше.

compile 'joda-time:joda-time:2.9.9' val test = DateTime() val l = Locale("nl_NL") // Dutch language, Netherlands country. val f = DateTimeFormat.forPattern("dd MMM yyyy").withLocale(l) val text = f.print(test) 

Распечатывает:

26 октября 2017 г.

Должно быть:

26 октября 2017 года

    Вы должны использовать конструктор 2-arg Locale , который получает код языка и страны в отдельных параметрах:

     val l = Locale("nl", "NL") 

    При этом вывод:

    26 окт 2017 г.

    В моих тестах вывод не в верхнем регистре Okt как вы хотели, но он встроен в API, и мы не контролируем его. Если вы хотите, чтобы Okt выходным, вам придется самостоятельно управлять строкой.

    Правильный ответ:

      val l = Locale("nl", "NL") val f = DateTimeFormat.forPattern("dd MMM yyyy").withLocale(l) val dateStr = f.print(dateTime).substring(3, 4).toUpperCase() val capitalizedDate = StringBuilder(f.print(dateTime)) capitalizedDate.setCharAt(3, dateStr[0]) return capitalizedDate.toString().replace(".", "") 

    Я уже ответил на аналогичный вопрос. Вы можете получить локализованное имя месяца с использованием объекта Calendar .

     private String getMonthName(final int index, final Locale locale, final boolean shortName) { String format = "%tB"; if (shortName) format = "%tb"; Calendar calendar = Calendar.getInstance(locale); calendar.set(Calendar.MONTH, index); calendar.set(Calendar.DAY_OF_MONTH, 1); return String.format(locale, format, calendar); } 

    Пример полного имени месяца:

     System.out.println(getMonthName(0, new Locale("NL"), false)); 

    Результат: januari

    Пример для короткого месяца:

     System.out.println(getMonthName(2, new Locale("NL"), true)); 

    Результат: jan.

    Intereting Posts
    Уменьшить выбросы Range NoClassDefFoundError: kotlin / IntIterator Ссылка на представления с одним и тем же идентификатором в разных макетах с расширением android kotlin Kotlin: Сделать внутреннюю функцию видимой для модульных тестов Android Studio (Kotlin) GsonBuilder.registerTypeAdapter () дает 2 ошибки Дженкинс град строит неудачу из-за приложения: compileDebugKotlin автономный сценарист, чтобы получить intellij проект Как добавить вторичную легенду в диаграмму JavaFX? Не удалось загрузить ошибку класса kotlin.collections.CollectionsKT при попытке синхронизации градиента Назначение значений ArrayList с помощью mapTo NoSuchMethodError при вызове метода Регулярное выражение для соответствия символам только в начале строки Не удалось запустить программу Kotlin в терминале напишите шестнадцатеричный целочисленный литерал, равный Int.MIN_VALUE в Котлине Расширенное назначение и приращение не поддерживаются для локальных делегированных свойств и встроенных свойств IlegalStateException, где выбрасывается при попытке получить значения из экземпляра RoomDatabase