Java 8 Date API - получение бросков недели за месяц UnsupportedTemporalTypeException: неподдерживаемое поле: DayOfWeek

Я пытаюсь получить неделю текущего месяца примерно так:

YearMonth
    .from(Instant.now().atZone(ZoneId.of("UTC")))
    .get(WeekFields.ISO.weekOfMonth())

Но это кидает

java.time.temporal.UnsupportedTemporalTypeException: неподдерживаемое поле: DayOfWeek

Я не могу понять, почему я получаю это исключение, потому что я ничего не делаю с DayOfWeek, Есть идеи?

1 ответ

Решение

Вы не можете получить неделю текущего месяца, используя YearMonth, Это только год и месяц. + Изменить

YearMonth
    .from(Instant.now().atZone(ZoneId.of("UTC")))
    .get(WeekFields.ISO.weekOfMonth())

в

LocalDate
    .from(Instant.now().atZone(ZoneId.of("UTC")))
    .get(WeekFields.ISO.weekOfMonth())

И я получаю

1
Другие вопросы по тегам