#java
#java
Вопрос:
Например:
DateTimeFormatter dtfr = DateTimeFormatter.ofPattern("EEEE, MMMM d", locale);
return dtfr.format(localDate);
Результат (локаль — Германия):
Expected :Samstag, 28. Mai
Actual :Samstag, Mai 28
Если я использую
DateTimeFormatter dtf = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL);
return dtf
.withLocale(locale)
.format(localDate1);
Результат:
Expected :Samstag, 28. Mai
Actual :Samstag, 28. Mai 2016
Я не могу просто избавиться от года, потому что на другом языке может быть другое слово для описания года.
Итак, как я могу использовать DateTimeFormatter(не SimpleDateFormat), чтобы заставить его работать?
Ответ №1:
Изменить порядок переданных параметров.
"EEEE, MMMM d"
сделает.. Samstag, Mai 28
Попробуйте использовать:
"EEEE, d MMMM"
даст вам.. Samstag, 28 Mai
Вы можете найти все необходимые шаблоны в Java API: https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#Patterns
Комментарии:
1. но США и другие страны имеют другой формат. Итак, я хочу сделать формат на основе локали. Итак, версия для США — «EEEE, MMMM d», а версия для Германии — «EEEE, d MMMM»
2. @Alex Это недоступно. Только полный локализованный формат вкл. доступен год.
3. @Andreas так ты имеешь в виду, что я могу получить только этот результат: Samstag, 28. Mai 2016 с годом. Как я могу избавиться от года, используя FormatStyle.FULL. Спасибо
4. Ваш вопрос противоречив … вы просите FormatStyle. ПОЛНОГО, но минус год…
5. @JoshMiller Потому что я думаю, что это единственный способ сделать формат правильным, но мне не нужен год, чтобы быть там.