Метод resolveDate

Метод resolveDate класса IsoChronology разрешает поля даты в объект ChronoLocalDate. В первый параметр мы передаем карту полей с их значениями, во второй параметр мы передаем стиль разрешения для обработки конфликтных ситуаций.

Импорт

kotlinimport java.time.chrono.IsoChronology
import java.time.temporal.ChronoField
import java.time.temporal.ResolverStyle
import java.util.HashMap

Синтаксис

kotlinfun resolveDate(fieldValues: MutableMap<TemporalField, Long>, resolverStyle: ResolverStyle): ChronoLocalDate

Пример

Разрешим поля даты для создания даты "2025-12-31":

kotlinval fieldValues = HashMap<TemporalField, Long>()
fieldValues.put(ChronoField.YEAR, 2025L)
fieldValues.put(ChronoField.MONTH_OF_YEAR, 12L)
fieldValues.put(ChronoField.DAY_OF_MONTH, 31L)

val date = IsoChronology.INSTANCE.resolveDate(fieldValues, ResolverStyle.STRICT)
println(date)

Результат выполнения кода:

kotlinString "2025-12-31"

Пример

Используем стиль ResolverStyle.SMART для автоматической корректировки невалидных дат:

kotlinval fieldValues = HashMap<TemporalField, Long>()
fieldValues.put(ChronoField.YEAR, 2025L)
fieldValues.put(ChronoField.MONTH_OF_YEAR, 2L)
fieldValues.put(ChronoField.DAY_OF_MONTH, 30L)

val date = IsoChronology.INSTANCE.resolveDate(fieldValues, ResolverStyle.SMART)
println(date)

Результат выполнения кода:

kotlinString "2025-02-28"

Пример

Проверим обработку конфликтных полей с использованием стиля ResolverStyle.LENIENT:

kotlinval fieldValues = HashMap<TemporalField, Long>()
fieldValues.put(ChronoField.YEAR, 2025L)
fieldValues.put(ChronoField.ALIGNED_WEEK_OF_YEAR, 53L)
fieldValues.put(ChronoField.ALIGNED_DAY_OF_WEEK_IN_YEAR, 3L)

val date = IsoChronology.INSTANCE.resolveDate(fieldValues, ResolverStyle.LENIENT)
println(date)

Результат выполнения кода:

kotlinString "2025-12-31"

Смотрите также

  • функцию date класса IsoChronology,
    которая создает дату из числовых компонентов
  • функцию isLeapYear класса IsoChronology,
    которая проверяет високосный год
  • класс ChronoField,
    который представляет поля даты и времени