Класс TemporalField
TemporalField
является интерфейсом в Java Time API, который представляет поле даты-времени, такое как год, месяц, день, час, минута и другие.
Этот интерфейс определяет методы для доступа к значениям полей из объектов временных типов, таких как LocalDate
, LocalTime
и LocalDateTime
.
Основные реализации интерфейса находятся в классе ChronoField
.
Импорт
import java.time.temporal.TemporalField
import java.time.temporal.ChronoField
Синтаксис
// Получение значения поля из временного объекта
fun getFrom(temporal: TemporalAccessor): Long
// Проверка поддержки поля временным объектом
fun isSupportedBy(temporal: TemporalAccessor): Boolean
// Получение базовой единицы измерения поля
fun getBaseUnit(): TemporalUnit
// Получение единицы измерения диапазона поля
fun getRangeUnit(): TemporalUnit
// Проверка, является ли поле дато-ориентированным
fun isDateBased(): Boolean
// Проверка, является ли поле время-ориентированным
fun isTimeBased(): Boolean
// Получение диапазона допустимых значений для поля
fun range(): ValueRange
// Получение диапазона значений, уточненного для конкретного временного объекта
fun rangeRefinedBy(temporal: TemporalAccessor): ValueRange
// Проверка корректности значения для поля
fun checkValidValue(value: Long): Long
// Проверка корректности целочисленного значения для поля
fun checkValidIntValue(value: Long): Int
// Получение отображаемого имени поля
fun getDisplayName(locale: Locale): String
// Изменение значения поля в временном объекте
fun adjustInto(temporal: Temporal, newValue: Long): Temporal
Пример
Получим значение поля ChronoField.YEAR
из объекта LocalDate
:
import java.time.LocalDate
import java.time.temporal.ChronoField
val date = LocalDate.of(2025, 12, 31)
val year = date.getLong(ChronoField.YEAR)
println("Year: $year")
Результат выполнения кода:
String "Year: 2025"
Пример
Проверим, поддерживается ли поле ChronoField.HOUR_OF_DAY
в объекте LocalDate
:
import java.time.LocalDate
import java.time.temporal.ChronoField
val date = LocalDate.of(2025, 12, 31)
val isSupported = ChronoField.HOUR_OF_DAY.isSupportedBy(date)
println("Is HOUR_OF_DAY supported: $isSupported")
Результат выполнения кода:
String "Is HOUR_OF_DAY supported: false"
Пример
Получим диапазон допустимых значений для поля ChronoField.DAY_OF_MONTH
в декабре 2025 года:
import java.time.LocalDate
import java.time.temporal.ChronoField
val date = LocalDate.of(2025, 12, 15)
val range = ChronoField.DAY_OF_MONTH.rangeRefinedBy(date)
val min = range.minimum
val max = range.maximum
println("Day of month range: from $min to $max")
Результат выполнения кода:
String "Day of month range: from 1 to 31"
Пример
Изменим значение поля ChronoField.YEAR
в объекте LocalDate
:
import java.time.LocalDate
import java.time.temporal.ChronoField
val date = LocalDate.of(2025, 12, 31)
val newDate = ChronoField.YEAR.adjustInto(date, 2030)
println("New date: $newDate")
Результат выполнения кода:
String "New date: 2030-12-31"
Пример
Проверим, является ли поле ChronoField.MONTH_OF_YEAR
дато-ориентированным:
import java.time.temporal.ChronoField
val isDateBased = ChronoField.MONTH_OF_YEAR.isDateBased()
val isTimeBased = ChronoField.MONTH_OF_YEAR.isTimeBased()
println("Is date based: $isDateBased")
println("Is time based: $isTimeBased")
Результат выполнения кода:
String "Is date based: true"
String "Is time based: false"
Смотрите также
-
класс
ChronoField
,
который содержит стандартные реализации TemporalField -
класс
LocalDate
,
который представляет дату без времени -
класс
LocalTime
,
который представляет время без даты -
класс
LocalDateTime
,
который представляет дату и время