DateTimeFormatterBuilder с указанными конфликтами parseDefaulting для поля YEAR

У меня есть следующий форматер:

DateTimeFormatter formatter = new DateTimeFormatterBuilder()
        .appendPattern("yyyyMM")
        .parseDefaulting(ChronoField.SECOND_OF_MINUTE, 0)
        .parseDefaulting(ChronoField.MINUTE_OF_HOUR, 0)
        .parseDefaulting(ChronoField.HOUR_OF_DAY, 0)
        .parseDefaulting(ChronoField.DAY_OF_MONTH, 1)
        .parseDefaulting(ChronoField.MONTH_OF_YEAR, 1)
        .parseDefaulting(ChronoField.YEAR, ZonedDateTime.now().getYear())
        .toFormatter()
        .withZone(ZoneId.systemDefault());

Я пытаюсь разобрать строку "201505"

System.out.println(ZonedDateTime.parse("201505", formatter));

и это бросает исключение:

Вызвано: java.time.DateTimeException: обнаружен конфликт: год 2016 отличается от года 2015

Это работает, если я закомментирую установку значения по умолчанию для ГОДА.

Насколько я понял документация, он должен пытаться заменить значение по умолчанию, только если не проанализировано значение. Похоже, это работает в течение месяца, так как у меня месяц, отличный от проанализированного по умолчанию. Однако это не работает в течение года.

Я использую это неправильно, может кто-то сказать мне, если есть другой способ определить значения по умолчанию для полей, которые могут отсутствовать в шаблоне?

Ответы на вопрос(1)

Ваш ответ на вопрос