Я определяю средство форматирования следующим образом:
private static final DateTimeFormatter FORMATTER =
new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.appendLiteral("y")
.appendValue(IsoFields.WEEK_BASED_YEAR, 4, 10, SignStyle.EXCEEDS_PAD)
.appendLiteral("w")
.appendValue(IsoFields.WEEK_OF_WEEK_BASED_YEAR, 2)
.toFormatter();
Я ввожу следующие строки, которые, как я считаю, должны быть действительными, используя следующий вызов синтаксического анализа:
LocalDate.parse(inputString, FORMATTER).atStartOfDay()
Со следующими значениями inputString
:
- y2019w52
- y2020w01
- y2019w03
Все выдают ошибки синтаксического анализа, например:
Текст «y2019w03» не может быть проанализирован: невозможно получить LocalDate из TemporalAccessor: {WeekOfWeekBasedYear=3, WeekBasedYear=2019}, ISO типа java.time.format.Parsed
Любые идеи?
.parseDefaulting(ChronoField.DAY_OF_WEEK, 1)
в цепочкуDateTimeFormatterBuilder
. - person Andreas   schedule 23.06.2021