Класс ChronoField

Класс ChronoField является перечислением, которое содержит стандартные поля для работы с датой и временем в Java Time API. Каждое поле представляет собой компонент даты или времени, такой как год, месяц, день, час, минута, секунда и другие. Эти поля используются для доступа и манипуляции значениями в временных объектах, таких как LocalDate, LocalTime и LocalDateTime.

Импорт

kotlinimport java.time.temporal.ChronoField

Синтаксис

kotlin// Доступ к полям через перечисление
ChronoField.YEAR
ChronoField.MONTH_OF_YEAR
ChronoField.DAY_OF_MONTH
ChronoField.HOUR_OF_DAY
ChronoField.MINUTE_OF_HOUR
ChronoField.SECOND_OF_MINUTE

Пример

Получим значение года из объекта LocalDate с помощью поля ChronoField.YEAR:

kotlinimport java.time.LocalDate
import java.time.temporal.ChronoField

val date = LocalDate.of(2025, 12, 31)
val year = date.get(ChronoField.YEAR)
println("Year: $year")

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

kotlinString "Year: 2025"

Пример

Получим значение часа из объекта LocalTime с помощью поля ChronoField.HOUR_OF_DAY:

kotlinimport java.time.LocalTime
import java.time.temporal.ChronoField

val time = LocalTime.of(14, 30, 45)
val hour = time.get(ChronoField.HOUR_OF_DAY)
println("Hour: $hour")

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

kotlinString "Hour: 14"

Пример

Изменим значение дня в месяце с помощью поля ChronoField.DAY_OF_MONTH:

kotlinimport java.time.LocalDate
import java.time.temporal.ChronoField

val date = LocalDate.of(2025, 12, 15)
val newDate = date.with(ChronoField.DAY_OF_MONTH, 25)
println("New date: $newDate")

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

kotlinString "New date: 2025-12-25"

Пример

Проверим, является ли поле дато-ориентированным или время-ориентированным:

kotlinimport java.time.temporal.ChronoField

val isYearDateBased = ChronoField.YEAR.isDateBased()
val isHourTimeBased = ChronoField.HOUR_OF_DAY.isTimeBased()

println("YEAR is date based: $isYearDateBased")
println("HOUR_OF_DAY is time based: $isHourTimeBased")

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

kotlinString "YEAR is date based: true"
String "HOUR_OF_DAY is time based: true"

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

  • класс LocalDate,
    который представляет дату без времени
  • класс LocalTime,
    который представляет время без даты
  • класс LocalDateTime,
    который представляет дату и время
  • класс ChronoUnit,
    который предоставляет стандартные единицы измерения времени