Константа EPOCH_DAY

Константа EPOCH_DAY класса ChronoField представляет количество дней, прошедших с эпохи Unix "1970-01-01". Положительные значения соответствуют датам после эпохи, отрицательные - до эпохи. Данное поле используется для получения и установки количества дней в различных временных объектах, таких как LocalDate.

Импорт

kotlinimport java.time.temporal.ChronoField

Синтаксис

kotlinChronoField.EPOCH_DAY

Пример

Получим количество дней с эпохи Unix для даты "2025-12-31":

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

val date = LocalDate.of(2025, 12, 31)
val epochDays = date.getLong(ChronoField.EPOCH_DAY)
println(epochDays)

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

kotlinLong 20453

Пример

Создадим дату из количества дней с эпохи Unix:

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

val epochDays = 20453L
val date = LocalDate.ofEpochDay(epochDays)
println(date)

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

kotlinString "2025-12-31"

Пример

Используем EPOCH_DAY для вычисления разницы в днях между двумя датами:

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

val date1 = LocalDate.of(2025, 1, 1)
val date2 = LocalDate.of(2025, 12, 31)

val days1 = date1.getLong(ChronoField.EPOCH_DAY)
val days2 = date2.getLong(ChronoField.EPOCH_DAY)
val difference = days2 - days1

println("Difference in days: $difference")

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

kotlinString "Difference in days: 364"

Пример

Проверим валидность значения для поля EPOCH_DAY:

kotlinimport java.time.temporal.ChronoField

val isValid = ChronoField.EPOCH_DAY.isValidValue(20000L)
println("Is valid: $isValid")

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

kotlinString "Is valid: true"

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

  • функцию toEpochDay класса LocalDate,
    которая возвращает количество дней с эпохи Unix
  • константу DAY_OF_YEAR класса ChronoField,
    которая представляет день года
  • константу DAY_OF_MONTH класса ChronoField,
    которая представляет день месяца