Константа YEAR_OF_ERA

Константа YEAR_OF_ERA класса ChronoField представляет год в пределах текущей эры. Для эры CE (наша эра) значение года соответствует обычному году, для эры BCE (до нашей эры) значение года отсчитывается от 1 и увеличивается по мере удаления в прошлое.

Импорт

kotlinimport java.time.temporal.ChronoField

Синтаксис

kotlinChronoField.YEAR_OF_ERA

Пример

Получим значение года в эре для текущей даты:

kotlinimport java.time.LocalDate

val currentDate = LocalDate.now()
val yearOfEra = currentDate.get(ChronoField.YEAR_OF_ERA)

println("Year of era: $yearOfEra")

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

kotlinString "Year of era: 2025"

Пример

Сравним разницу между YEAR_OF_ERA и YEAR для даты до нашей эры:

kotlinimport java.time.LocalDate
import java.time.chrono.IsoEra

val bcDate = LocalDate.of(-100, 1, 1)
val yearOfEra = bcDate.get(ChronoField.YEAR_OF_ERA)
val year = bcDate.get(ChronoField.YEAR)
val era = bcDate.get(ChronoField.ERA)

println("Year of era: $yearOfEra")
println("Year: $year")
println("Era: ${if (era == IsoEra.CE.value) "CE" else "BCE"}")

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

kotlinString "Year of era: 101"
String "Year: -100"
String "Era: BCE"

Пример

Используем YEAR_OF_ERA с форматтером для вывода даты:

kotlinimport java.time.format.DateTimeFormatter
import java.time.LocalDate

val date = LocalDate.of(2025, 12, 31)
val formatter = DateTimeFormatter.ofPattern("yyyy G - YYYY")

println(date.format(formatter))

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

kotlinString "2025 AD - 2025"

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

  • константу YEAR класса ChronoField,
    которая представляет абсолютный год
  • константу ERA класса ChronoField,
    которая представляет эру
  • класс DateTimeFormatter,
    который форматирует дату и время