2017-02-01 7 views
2

следующий код не работает:Как анализировать «15 декабря 2009 года» в Дате с использованием API Java8 Date?

DateTimeFormatter.ofPattern("L dd, yyyy", Locale.US).parse("December 15, 2009"); 

, как он бросает

java.time.format.DateTimeParseException: Text 'December 15, 2009' could not be parsed at index 0 

Как заставить его работать? Возможно ли даже использование с использованием Locale ?? (Без использования дополнительной карты, которая отображает String к номеру месяца

ответ

4

использование MMMM вместо L:..

DateTimeFormatter.ofPattern("MMMM dd, yyyy", Locale.US).parse("December 15, 2009") 

Я найти Javadoc там немного запутанным, я также отметил этот, как дубликат, чтобы DateTimeFormatter month pattern letter "L" fails как это в основном касается одной и той же проблемы.

+0

Странно, что он терпит неудачу, поскольку в соответствии с источниками 'DateTimeFormatterBuilder', как' M', так и 'L' обозначают тот же' ChronoField.MONTH_OF_YEAR'. –

 Смежные вопросы

  • Нет связанных вопросов^_^