Перечисление ChronoField
- Все реализуемые интерфейсы:
Serializable, Comparable<ChronoField>, Constable, TemporalField
public enum ChronoField extends Enum<ChronoField> implements TemporalField
Этот набор полей предоставляет доступ на основе полей для изменения даты, времени или даты и времени. Стандартный набор полей можно расширить, реализовав TemporalField.
Эти поля предназначены для использования в нескольких календарных системах. Например, в большинстве календарных систем, отличных от ISO, даты определяются годом, месяцем и днем, но с несколько отличающимися правилами. В документации к каждому полю объясняется принцип его работы.
- Требования к реализации:
- Это окончательное, неизменяемое и потокобезопасное перечисление.
- С момента:
- 1.8
Краткое описание вложенных классов
Вложенные классы и интерфейсы, объявленные в классе Enum
Enum.EnumDesc<E> | Модификатор и тип | Класс | Описание |
|---|---|---|
static final class |
Enum.EnumDesc<E extends Enum<E>> |
Номинальный дескриптор константы enum. |
Краткое описание констант перечисления
| Константа перечисления | Описание |
|---|---|
ALIGNED_DAY_OF_WEEK_IN_MONTH |
Выровненный день недели в пределах месяца. |
ALIGNED_DAY_OF_WEEK_IN_YEAR |
Выровненный день недели в пределах года. |
ALIGNED_WEEK_OF_MONTH |
Выровненная неделя в пределах месяца. |
ALIGNED_WEEK_OF_YEAR |
Выровненная неделя в пределах года. |
AMPM_OF_DAY |
Половина суток (до или после полудня). |
CLOCK_HOUR_OF_AMPM |
Час в пределах половины суток по 12-часовой системе. |
CLOCK_HOUR_OF_DAY |
Час в пределах суток. |
DAY_OF_MONTH |
День месяца. |
DAY_OF_WEEK |
День недели, например вторник. |
DAY_OF_YEAR |
День года. |
EPOCH_DAY |
День эпохи, отсчитываемый от эпохи Java — 1970-01-01 (ISO). |
ERA |
Эра. |
HOUR_OF_AMPM |
Час в пределах половины суток. |
HOUR_OF_DAY |
Час в пределах суток. |
INSTANT_SECONDS |
Секунды эпохи для момента времени. |
MICRO_OF_DAY |
Микросекунды в пределах суток. |
MICRO_OF_SECOND |
Микросекунды в пределах секунды. |
MILLI_OF_DAY |
Миллисекунды в пределах суток. |
MILLI_OF_SECOND |
Миллисекунды в пределах секунды. |
MINUTE_OF_DAY |
Минута в пределах суток. |
MINUTE_OF_HOUR |
Минута в пределах часа. |
MONTH_OF_YEAR |
Месяц года, например март. |
NANO_OF_DAY |
Наносекунды в пределах суток. |
NANO_OF_SECOND |
Наносекунды в пределах секунды. |
OFFSET_SECONDS |
Смещение относительно UTC/Гринвича. |
PROLEPTIC_MONTH |
Пролептический месяц, отсчитываемый последовательным подсчетом месяцев начиная с 0 года. |
SECOND_OF_DAY |
Секунда в пределах суток. |
SECOND_OF_MINUTE |
Секунда в пределах минуты. |
YEAR |
Пролептический год, например 2012. |
YEAR_OF_ERA |
Год в пределах эры. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
<R extends Temporal> |
adjustInto |
Возвращает копию указанного временного объекта, в которой установлено значение этого поля. |
int |
checkValidIntValue |
Проверяет, допустимо ли указанное значение и помещается ли оно в int. |
long |
checkValidValue |
Проверяет, допустимо ли указанное значение для этого поля. |
TemporalUnit |
getBaseUnit() |
Возвращает единицу измерения этого поля. |
long |
getFrom |
Получает значение этого поля из указанного временного объекта. |
TemporalUnit |
getRangeUnit() |
Возвращает диапазон, которым ограничено это поле. |
boolean |
isDateBased() |
Проверяет, представляет ли это поле компонент даты. |
boolean |
isSupportedBy |
Проверяет, поддерживается ли это поле временным объектом. |
boolean |
isTimeBased() |
Проверяет, представляет ли это поле компонент времени. |
ValueRange |
range() |
Возвращает диапазон допустимых значений этого поля. |
ValueRange |
rangeRefinedBy |
Возвращает диапазон допустимых значений этого поля, уточняя результат с помощью временного объекта. |
String |
toString() |
Возвращает имя этой константы перечисления, указанное в объявлении. |
static ChronoField |
valueOf |
Возвращает константу перечисления этого класса с указанным именем. |
static ChronoField[] |
values() |
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления. |
Методы, объявленные в классе Enum
clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf | Модификатор и тип | Метод | Описание |
|---|---|---|
protected final Object |
clone() |
Выбрасывает CloneNotSupportedException. |
final int |
compareTo |
Сравнивает это перечисление с указанным объектом, определяя порядок. |
final Optional |
describeConstable() |
Возвращает дескриптор перечисления EnumDesc для этого экземпляра, если его можно создать, или пустой объект Optional, если создать его невозможно. |
final boolean |
equals |
Возвращает true, если указанный объект равен этой константе перечисления. |
protected final void |
finalize() |
Устарело, планируется удаление: этот элемент API может быть удален в одной из будущих версий. Метод финализации помечен как устаревший и планируется к удалению. |
final Class |
getDeclaringClass() |
Возвращает объект Class, соответствующий типу перечисления этой константы. |
final int |
hashCode() |
Возвращает хеш-код этой константы перечисления. |
final String |
name() |
Возвращает имя этой константы перечисления в точности в том виде, в каком оно указано в объявлении перечисления. |
final int |
ordinal() |
Возвращает порядковый номер этой константы перечисления (ее позицию в объявлении перечисления; первой константе присваивается порядковый номер 0). |
String |
toString() |
Возвращает имя этой константы перечисления, указанное в объявлении. |
static <T extends Enum<T>> |
valueOf |
Возвращает константу указанного класса перечисления с указанным именем. |
Методы, объявленные в классе Object
getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
final Class |
getClass() |
Возвращает класс времени выполнения этого объекта Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения определенного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения определенного промежутка реального времени. |
Методы, объявленные в интерфейсе TemporalField
getDisplayName, resolve | Модификатор и тип | Метод | Описание |
|---|---|---|
default String |
getDisplayName |
Возвращает отображаемое имя поля для запрошенной локали. |
default TemporalAccessor |
resolve |
Преобразует это поле, предоставляя более простой вариант или дату. |
Подробное описание констант перечисления
NANO_OF_SECOND
public static final ChronoField NANO_OF_SECOND
Это поле задаёт наносекунду в пределах секунды: от 0 до 999,999,999. Оно имеет одинаковое значение во всех календарных системах.
Это поле используется для представления наносекунды и обработки любой доли секунды. Реализации TemporalAccessor должны предоставлять значение этого поля, если они могут вернуть значение для SECOND_OF_MINUTE, SECOND_OF_DAY или INSTANT_SECONDS, заполняя нулями неизвестную точность.
При использовании этого поля для установки значения следует задавать точность, поддерживаемую объектом, отбрасывая избыточную точность с помощью целочисленного деления. Например, если TemporalAccessor хранит время с точностью до миллисекунды, то значение наносекунды в секунде необходимо разделить на 1,000,000 перед заменой значения миллисекунды в секунде.
При разборе это поле ведёт себя так же, как описано далее: значение проверяется в строгом и интеллектуальном режимах, но не в нестрогом режиме. Поле разрешается в сочетании с MILLI_OF_SECOND и MICRO_OF_SECOND.
NANO_OF_DAY
public static final ChronoField NANO_OF_DAY
Это поле задаёт наносекунду в пределах суток: от 0 до (24 * 60 * 60 * 1,000,000,000) - 1. Оно имеет одинаковое значение во всех календарных системах.
Это поле используется для представления наносекунды в сутках и обработки любой доли секунды. Реализации TemporalAccessor должны предоставлять значение этого поля, если они могут вернуть значение для SECOND_OF_DAY, заполняя нулями неизвестную точность.
При разборе это поле ведёт себя так же, как описано далее: значение проверяется в строгом и интеллектуальном режимах, но не в нестрогом режиме. Значение разделяется для формирования полей NANO_OF_SECOND, SECOND_OF_MINUTE, MINUTE_OF_HOUR и HOUR_OF_DAY.
MICRO_OF_SECOND
public static final ChronoField MICRO_OF_SECOND
Это поле задаёт микросекунду в пределах секунды: от 0 до 999,999. Оно имеет одинаковое значение во всех календарных системах.
Это поле используется для представления микросекунды и обработки любой доли секунды. Реализации TemporalAccessor должны предоставлять значение этого поля, если они могут вернуть значение для SECOND_OF_MINUTE, SECOND_OF_DAY или INSTANT_SECONDS, заполняя нулями неизвестную точность.
При использовании этого поля для установки значения оно должно вести себя так же, как установка NANO_OF_SECOND со значением, умноженным на 1,000.
При разборе это поле ведёт себя так же, как описано далее: значение проверяется в строгом и интеллектуальном режимах, но не в нестрогом режиме. Поле разрешается в сочетании с MILLI_OF_SECOND для получения NANO_OF_SECOND.
MICRO_OF_DAY
public static final ChronoField MICRO_OF_DAY
Это поле задаёт микросекунду в пределах суток: от 0 до (24 * 60 * 60 * 1,000,000) - 1. Оно имеет одинаковое значение во всех календарных системах.
Это поле используется для представления микросекунды в сутках и обработки любой доли секунды. Реализации TemporalAccessor должны предоставлять значение этого поля, если они могут вернуть значение для SECOND_OF_DAY, заполняя нулями неизвестную точность.
При использовании этого поля для установки значения оно должно вести себя так же, как установка NANO_OF_DAY со значением, умноженным на 1,000.
При разборе это поле ведёт себя так же, как описано далее: значение проверяется в строгом и интеллектуальном режимах, но не в нестрогом режиме. Значение разделяется для формирования полей MICRO_OF_SECOND, SECOND_OF_MINUTE, MINUTE_OF_HOUR и HOUR_OF_DAY.
MILLI_OF_SECOND
public static final ChronoField MILLI_OF_SECOND
Это поле задаёт миллисекунду в пределах секунды: от 0 до 999. Оно имеет одинаковое значение во всех календарных системах.
Это поле используется для представления миллисекунды и обработки любой доли секунды. Реализации TemporalAccessor должны предоставлять значение этого поля, если они могут вернуть значение для SECOND_OF_MINUTE, SECOND_OF_DAY или INSTANT_SECONDS, заполняя нулями неизвестную точность.
При использовании этого поля для установки значения оно должно вести себя так же, как установка NANO_OF_SECOND со значением, умноженным на 1,000,000.
При разборе это поле ведёт себя так же, как описано далее: значение проверяется в строгом и интеллектуальном режимах, но не в нестрогом режиме. Поле разрешается в сочетании с MICRO_OF_SECOND для получения NANO_OF_SECOND.
MILLI_OF_DAY
public static final ChronoField MILLI_OF_DAY
Это поле задаёт миллисекунду в пределах суток: от 0 до (24 * 60 * 60 * 1,000) - 1. Оно имеет одинаковое значение во всех календарных системах.
Это поле используется для представления миллисекунды в сутках и обработки любой доли секунды. Реализации TemporalAccessor должны предоставлять значение этого поля, если они могут вернуть значение для SECOND_OF_DAY, заполняя нулями неизвестную точность.
При использовании этого поля для установки значения оно должно вести себя так же, как установка NANO_OF_DAY со значением, умноженным на 1,000,000.
При разборе это поле ведёт себя так же, как описано далее: значение проверяется в строгом и интеллектуальном режимах, но не в нестрогом режиме. Значение разделяется для формирования полей MILLI_OF_SECOND, SECOND_OF_MINUTE, MINUTE_OF_HOUR и HOUR_OF_DAY.
SECOND_OF_MINUTE
public static final ChronoField SECOND_OF_MINUTE
Это поле задаёт секунду в пределах минуты: от 0 до 59. Оно имеет одинаковое значение во всех календарных системах.
При разборе это поле ведёт себя так же, как описано далее: значение проверяется в строгом и интеллектуальном режимах, но не в нестрогом режиме.
SECOND_OF_DAY
public static final ChronoField SECOND_OF_DAY
Это поле задаёт секунду в пределах суток: от 0 до (24 * 60 * 60) - 1. Оно имеет одинаковое значение во всех календарных системах.
При разборе это поле ведёт себя так же, как описано далее: значение проверяется в строгом и интеллектуальном режимах, но не в нестрогом режиме. Значение разделяется для формирования полей SECOND_OF_MINUTE, MINUTE_OF_HOUR и HOUR_OF_DAY.
MINUTE_OF_HOUR
public static final ChronoField MINUTE_OF_HOUR
Это поле задаёт минуту в пределах часа: от 0 до 59. Оно имеет одинаковое значение во всех календарных системах.
При разборе это поле ведёт себя так же, как описано далее: значение проверяется в строгом и интеллектуальном режимах, но не в нестрогом режиме.
MINUTE_OF_DAY
public static final ChronoField MINUTE_OF_DAY
Это поле задаёт минуту в пределах суток: от 0 до (24 * 60) - 1. Оно имеет одинаковое значение во всех календарных системах.
При разборе это поле ведёт себя так же, как описано далее: значение проверяется в строгом и интеллектуальном режимах, но не в нестрогом режиме. Значение разделяется для формирования полей MINUTE_OF_HOUR и HOUR_OF_DAY.
HOUR_OF_AMPM
public static final ChronoField HOUR_OF_AMPM
Это поле задаёт час в пределах AM/PM: от 0 до 11. Это час, который отображался бы на стандартных цифровых часах с 12-часовым форматом. Оно имеет одинаковое значение во всех календарных системах.
При разборе это поле ведёт себя так же, как описано далее: значение проверяется в диапазоне от 0 до 11 в строгом и интеллектуальном режимах. В нестрогом режиме значение не проверяется. Оно объединяется с AMPM_OF_DAY для получения HOUR_OF_DAY путём умножения значения AMPM_OF_DAY на 12.
См. CLOCK_HOUR_OF_AMPM — связанное поле, задающее часы в диапазоне от 1 до 12.
CLOCK_HOUR_OF_AMPM
public static final ChronoField CLOCK_HOUR_OF_AMPM
Это поле задаёт час в пределах AM/PM: от 1 до 12. Это час, который отображался бы на стандартных аналоговых настенных часах с 12-часовым циферблатом. Оно имеет одинаковое значение во всех календарных системах.
При разборе это поле ведёт себя так же, как описано далее: значение проверяется в диапазоне от 1 до 12 в строгом режиме и от 0 до 12 в интеллектуальном режиме. В нестрогом режиме значение не проверяется. Поле преобразуется в HOUR_OF_AMPM с тем же значением, если только значение не равно 12; в этом случае оно преобразуется в 0.
См. HOUR_OF_AMPM — связанное поле, задающее часы в диапазоне от 0 до 11.
HOUR_OF_DAY
public static final ChronoField HOUR_OF_DAY
Это поле задаёт час в пределах суток: от 0 до 23. Это час, который отображался бы на стандартных цифровых часах с 24-часовым форматом. Оно имеет одинаковое значение во всех календарных системах.
При разборе это поле ведёт себя так же, как описано далее: значение проверяется в строгом и интеллектуальном режимах, но не в нестрогом режиме. Поле объединяется с MINUTE_OF_HOUR, SECOND_OF_MINUTE и NANO_OF_SECOND для получения LocalTime. В нестрогом режиме избыточные дни добавляются к разобранной дате или становятся доступны через DateTimeFormatter.parsedExcessDays().
См. CLOCK_HOUR_OF_DAY — связанное поле, задающее часы в диапазоне от 1 до 24.
CLOCK_HOUR_OF_DAY
public static final ChronoField CLOCK_HOUR_OF_DAY
Это поле задаёт час в пределах суток: от 1 до 24. Это час, который отображался бы на аналоговых настенных часах с 24-часовым циферблатом. Оно имеет одинаковое значение во всех календарных системах.
При разборе это поле ведёт себя так же, как описано далее: значение проверяется в диапазоне от 1 до 24 в строгом режиме и от 0 до 24 в интеллектуальном режиме. В нестрогом режиме значение не проверяется. Поле преобразуется в HOUR_OF_DAY с тем же значением, если только значение не равно 24; в этом случае оно преобразуется в 0.
См. HOUR_OF_DAY — связанное поле, задающее часы в диапазоне от 0 до 23.
AMPM_OF_DAY
public static final ChronoField AMPM_OF_DAY
Это поле задаёт период AM/PM в пределах суток: от 0 (AM) до 1 (PM). Оно имеет одинаковое значение во всех календарных системах.
При разборе это поле ведёт себя так же, как описано далее: значение проверяется в диапазоне от 0 до 1 в строгом и интеллектуальном режимах. В нестрогом режиме значение не проверяется. Оно объединяется с HOUR_OF_AMPM (если поле отсутствует, используется значение по умолчанию '6') для получения HOUR_OF_DAY путём умножения значения AMPM_OF_DAY на 12.
DAY_OF_WEEK
public static final ChronoField DAY_OF_WEEK
Это поле представляет стандартное понятие дня недели. В календарной системе ISO, используемой по умолчанию, значения варьируются от понедельника (1) до воскресенья (7). Для интерпретации результата можно использовать класс DayOfWeek.
В большинстве календарных систем, отличных от ISO, также используется семидневная неделя, согласованная с ISO. Такие календарные системы должны использовать ту же систему нумерации: от понедельника (1) до воскресенья (7), что позволяет использовать DayOfWeek.
Календарные системы, в которых нет стандартной семидневной недели, должны реализовывать это поле, если в них есть похожее понятие именованных или пронумерованных дней в периоде, аналогичном неделе. Рекомендуется начинать нумерацию с 1.
ALIGNED_DAY_OF_WEEK_IN_MONTH
public static final ChronoField ALIGNED_DAY_OF_WEEK_IN_MONTH
Это поле представляет понятие количества дней в периоде недели, где недели выровнены относительно начала месяца. Обычно это поле используется вместе с ALIGNED_WEEK_OF_MONTH.
Например, в календарной системе с семидневной неделей первая выравненная неделя месяца начинается с первого дня месяца, вторая — с восьмого дня и так далее. В каждой из этих выравненных недель дни нумеруются от 1 до 7; это число и возвращается как значение данного поля. Таким образом, для дней месяца с 1 по 7 значения выравненного дня недели будут от 1 до 7. Для дней месяца с 8 по 14 значения выравненного дня недели повторятся в диапазоне от 1 до 7.
Календарные системы, в которых нет семидневной недели, обычно должны реализовывать это поле аналогичным образом, используя при этом другую продолжительность недели.
ALIGNED_DAY_OF_WEEK_IN_YEAR
public static final ChronoField ALIGNED_DAY_OF_WEEK_IN_YEAR
Это поле представляет понятие количества дней в периоде недели, где недели выровнены относительно начала года. Обычно это поле используется вместе с ALIGNED_WEEK_OF_YEAR.
Например, в календарной системе с семидневной неделей первая выравненная неделя года начинается с первого дня года, вторая — с восьмого дня и так далее. В каждой из этих выравненных недель дни нумеруются от 1 до 7; это число и возвращается как значение данного поля. Таким образом, для дней года с 1 по 7 значения выравненного дня недели будут от 1 до 7. Для дней года с 8 по 14 значения выравненного дня недели повторятся в диапазоне от 1 до 7.
Календарные системы, в которых нет семидневной недели, обычно должны реализовывать это поле аналогичным образом, используя при этом другую продолжительность недели.
DAY_OF_MONTH
public static final ChronoField DAY_OF_MONTH
Это поле представляет понятие дня в пределах месяца. В календарной системе ISO, используемой по умолчанию, в большинстве месяцев значения варьируются от 1 до 31. В апреле, июне, сентябре и ноябре — от 1 до 30, а в феврале — от 1 до 28 или до 29 в високосный год.
В календарных системах, отличных от ISO, это поле следует реализовывать с использованием наиболее привычных для пользователей данной календарной системы значений дня месяца. Обычно это количество дней от 1 до продолжительности месяца.
DAY_OF_YEAR
public static final ChronoField DAY_OF_YEAR
Это поле представляет понятие дня в пределах года. В календарной системе ISO, используемой по умолчанию, значения варьируются от 1 до 365 в обычные годы и от 1 до 366 в високосные годы.
В календарных системах, отличных от ISO, это поле следует реализовывать с использованием наиболее привычных для пользователей данной календарной системы значений дня года. Обычно это количество дней от 1 до продолжительности года.
Обратите внимание, что в календарной системе, отличной от ISO, нумерация лет может изменяться не в тот же момент, когда естественным образом сбрасывается нумерация месяцев. Например, в японской календарной системе при смене эры номер года сбрасывается до 1, и смена может произойти в любой день. Смена эры и сброс номера года также приводят к сбросу дня года до 1, но не месяца года или дня месяца.
EPOCH_DAY
public static final ChronoField EPOCH_DAY
Это поле представляет собой последовательный отсчёт дней, где 1970-01-01 (ISO) соответствует нулю. Обратите внимание, что используется локальная временная шкала без учёта смещения и часового пояса.
Значение этого поля строго определено и одинаково во всех календарных системах. Это необходимо для обеспечения взаимодействия между календарями.
Диапазон EpochDay включает обе границы: от LocalDate.MIN.toEpochDay() до LocalDate.MAX.toEpochDay().
ALIGNED_WEEK_OF_MONTH
public static final ChronoField ALIGNED_WEEK_OF_MONTH
Это поле представляет понятие количества недель в периоде месяца, где недели выровнены относительно начала месяца. Обычно это поле используется вместе с ALIGNED_DAY_OF_WEEK_IN_MONTH.
Например, в календарной системе с семидневной неделей первая выравненная неделя месяца начинается с первого дня месяца, вторая — с восьмого дня и так далее. Таким образом, значения дня месяца от 1 до 7 относятся к выравненной неделе 1, от 8 до 14 — к выравненной неделе 2 и так далее.
Календарные системы, в которых нет семидневной недели, обычно должны реализовывать это поле аналогичным образом, используя при этом другую продолжительность недели.
ALIGNED_WEEK_OF_YEAR
public static final ChronoField ALIGNED_WEEK_OF_YEAR
Это поле представляет понятие количества недель в периоде года, где недели выровнены относительно начала года. Обычно это поле используется вместе с ALIGNED_DAY_OF_WEEK_IN_YEAR.
Например, в календарной системе с семидневной неделей первая выравненная неделя года начинается с первого дня года, вторая — с восьмого дня и так далее. Таким образом, значения дня года от 1 до 7 относятся к выравненной неделе 1, от 8 до 14 — к выравненной неделе 2 и так далее.
Календарные системы, в которых нет семидневной недели, обычно должны реализовывать это поле аналогичным образом, используя при этом другую продолжительность недели.
MONTH_OF_YEAR
public static final ChronoField MONTH_OF_YEAR
Это поле представляет понятие месяца в пределах года. В календарной системе ISO, используемой по умолчанию, значения варьируются от января (1) до декабря (12).
В календарных системах, отличных от ISO, это поле следует реализовывать с использованием наиболее привычных для пользователей данной календарной системы значений месяца года. Обычно это количество месяцев, начиная с 1.
PROLEPTIC_MONTH
public static final ChronoField PROLEPTIC_MONTH
Это поле представляет собой последовательный отсчёт месяцев, где первый месяц пролептического года 0 имеет значение 0. Значения последующих месяцев возрастают, а предыдущих — уменьшаются. В последовательности месяцев нет пропусков или разрывов. Обратите внимание, что используется локальная временная шкала без учёта смещения и часового пояса.
В календарной системе ISO, используемой по умолчанию, значение июня 2012 года будет равно (2012 * 12 + 6 - 1). Это поле предназначено главным образом для внутреннего использования.
Календарные системы, отличные от ISO, должны реализовывать это поле в соответствии с приведённым выше определением. Это простой отсчёт прошедших месяцев с нуля, начиная с начала пролептического года 0. Во всех календарных системах с полным определением пролептического года существует нулевой год. Если в календарной системе минимальный год исключает нулевой год, для определения этого метода необходимо экстраполировать нулевой год.
YEAR_OF_ERA
public static final ChronoField YEAR_OF_ERA
Это поле представляет понятие года в пределах эры. Обычно это поле используется вместе с ERA.
Стандартная модель даты в представлении человека основана на трёх понятиях: годе, месяце и дне. Им соответствуют поля YEAR, MONTH_OF_YEAR и DAY_OF_MONTH. Обратите внимание, что эры в этой модели не учитываются. Полная модель даты включает четыре понятия: эру, год, месяц и день. Им соответствуют поля ERA, YEAR_OF_ERA, MONTH_OF_YEAR и DAY_OF_MONTH. Выбор между этим полем и YEAR зависит от используемой модели. Подробнее об этом см. в описании ChronoLocalDate.
В календарной системе ISO, используемой по умолчанию, определены две эры: 'BCE' и 'CE'. Эра 'CE' используется в настоящее время, и нумерация лет в эре начинается с 1 и продолжается до максимального значения. Эра 'BCE' предшествует ей, и нумерация лет в эре ведётся в обратном порядке.
Например, если каждый раз вычитать год, получится следующее:
- пролептический год 2 = год 2 эры 'CE'
- пролептический год 1 = год 1 эры 'CE'
- пролептический год 0 = год 1 эры 'BCE'
- пролептический год -1 = год 2 эры 'BCE'
Обратите внимание, что стандарт ISO-8601 в действительности не определяет эры. Также обратите внимание, что эры ISO не совпадают с общеизвестными эрами AD/BC из-за перехода от юлианской календарной системы к григорианской.
В календарных системах, отличных от ISO, это поле следует реализовывать с использованием наиболее привычного для пользователей данной календарной системы значения года в эре. Поскольку в большинстве календарных систем есть только две эры, нумерация года в эре обычно будет такой же, как в календарной системе ISO. Значение года в эре обычно должно быть положительным, однако это не является обязательным.
YEAR
public static final ChronoField YEAR
Это поле представляет понятие года, последовательно отсчитываемого с использованием отрицательных чисел. Пролептический год не интерпретируется с учётом эры. Пример соответствия пролептического года году в эре см. в описании YEAR_OF_ERA.
Стандартная модель даты в представлении человека основана на трёх понятиях: годе, месяце и дне. Им соответствуют поля YEAR, MONTH_OF_YEAR и DAY_OF_MONTH. Обратите внимание, что эры в этой модели не учитываются. Полная модель даты включает четыре понятия: эру, год, месяц и день. Им соответствуют поля ERA, YEAR_OF_ERA, MONTH_OF_YEAR и DAY_OF_MONTH. Выбор между этим полем и YEAR_OF_ERA зависит от используемой модели. Подробнее об этом см. в описании ChronoLocalDate.
В календарных системах, отличных от ISO, это поле следует реализовывать следующим образом. Если в календарной системе только две эры, расположенные до и после фиксированной даты, то значение пролептического года в более поздней эре должно совпадать со значением года в эре, а для более ранней эры должно становиться всё более отрицательным. Если в календарной системе больше двух эр, значение пролептического года можно определить подходящим образом, однако, возможно, оптимальным вариантом будет определение такого же значения, как в ISO.
ERA
public static final ChronoField ERA
Это поле представляет понятие эры — наибольшего деления временной шкалы. Обычно это поле используется вместе с YEAR_OF_ERA.
В календарной системе ISO, используемой по умолчанию, определены две эры: 'BCE' и 'CE'. Эра 'CE' используется в настоящее время, и нумерация лет в эре начинается с 1 и продолжается до максимального значения. Эра 'BCE' предшествует ей, и нумерация лет в эре ведётся в обратном порядке. Полный пример см. в описании YEAR_OF_ERA.
В календарных системах, отличных от ISO, это поле следует реализовывать для определения эр. Эре, действовавшей 1970-01-01 (ISO), необходимо присвоить значение 1. Более ранним эрам следует присваивать последовательно меньшие значения. Более поздним эрам следует присваивать последовательно большие значения,
INSTANT_SECONDS
public static final ChronoField INSTANT_SECONDS
Это поле представляет собой последовательный отсчёт секунд, где 1970-01-01T00:00Z (ISO) соответствует нулю. Это поле можно использовать вместе с NANO_OF_SECOND для представления доли секунды.
Instant представляет момент на временной шкале. Сам по себе момент времени не содержит достаточно информации для получения локальных даты и времени. Локальные дату или время можно вычислить, только если момент времени объединён со смещением или часовым поясом.
Значение этого поля строго определено и одинаково во всех календарных системах. Это необходимо для обеспечения взаимодействия между календарями.
Диапазон InstantSeconds включает обе границы: от Instant.MIN до Instant.MAX секунд эпохи.
OFFSET_SECONDS
public static final ChronoField OFFSET_SECONDS
Это поле представляет понятие смещения местного времени относительно UTC/Гринвича, выраженного в секундах.
ZoneOffset представляет промежуток времени, на который местное время отличается от UTC/Гринвича. Обычно это фиксированное количество часов и минут. Оно соответствует total amount смещения в секундах. Например, зимой смещение для Парижа составляет +01:00, то есть 3 600 секунд.
Значение этого поля строго определено и одинаково во всех календарных системах. Это необходимо для обеспечения взаимодействия между календарями.
Подробное описание методов
values
public static ChronoField[] values()
- Возвращает:
- массив, содержащий константы этого класса перечисления в порядке их объявления
valueOf
public static ChronoField valueOf(String name)
- Параметры:
-
name— имя возвращаемой константы перечисления. - Возвращает:
- константа перечисления с указанным именем
- Вызывает исключение:
-
IllegalArgumentException— если в этом классе перечисления нет константы с указанным именем -
NullPointerException— если аргумент равен null
getBaseUnit
public TemporalUnit getBaseUnit()
TemporalField Единица измерения поля — это период, в пределах которого изменяется поле. Например, для поля 'MonthOfYear' единицей измерения являются 'Months'. См. также TemporalField.getRangeUnit().
- Определено в:
-
getBaseUnitв интерфейсеTemporalField - Возвращает:
- единица измерения, определяющая базовую единицу поля; не может быть null
getRangeUnit
public TemporalUnit getRangeUnit()
TemporalField Диапазон поля — это период, в пределах которого изменяется поле. Например, для поля 'MonthOfYear' диапазоном являются 'Years'. См. также TemporalField.getBaseUnit().
Диапазон никогда не равен null. Например, поле 'Year' является сокращённой записью 'YearOfForever'. Поэтому его единицей измерения являются 'Years', а диапазоном — 'Forever'.
- Определено в:
-
getRangeUnitв интерфейсеTemporalField - Возвращает:
- единица измерения, определяющая диапазон поля; не может быть null
range
public ValueRange range()
Все поля могут быть выражены как целое число long. Этот метод возвращает объект, описывающий допустимый диапазон для этого значения.
Этот метод возвращает диапазон поля в календарной системе ISO-8601. Этот диапазон может быть некорректным для других календарных систем. Используйте Chronology.range(ChronoField), чтобы получить правильный диапазон для другой календарной системы.
Обратите внимание, что результат описывает только минимальные и максимальные допустимые значения, и не следует делать из этого слишком далеко идущих выводов. Например, в диапазоне могут быть значения, недопустимые для поля.
- Определено в:
-
rangeв интерфейсеTemporalField - Возвращает:
- диапазон допустимых значений для поля, не равный null
isDateBased
public boolean isDateBased()
Поля от дня недели до эры относятся к дате.
- Определено в:
-
isDateBasedв интерфейсеTemporalField - Возвращает:
- true, если поле является компонентом даты
isTimeBased
public boolean isTimeBased()
Поля от наносекунды до полудня/полуночи относятся ко времени.
- Определено в:
-
isTimeBasedв интерфейсеTemporalField - Возвращает:
- true, если поле является компонентом времени
checkValidValue
public long checkValidValue(long value)
Этот метод проверяет, находится ли значение во внешнем диапазоне допустимых значений, возвращаемом методом range().
Этот метод проверяет значение относительно диапазона поля в календарной системе ISO-8601. Этот диапазон может быть некорректным для других календарных систем. Используйте Chronology.range(ChronoField), чтобы получить правильный диапазон для другой календарной системы.
- Параметры:
-
value— проверяемое значение - Возвращает:
- переданное значение
checkValidIntValue
public int checkValidIntValue(long value)
int. Этот метод проверяет, находится ли значение во внешнем диапазоне допустимых значений, возвращаемом методом range(). Он также проверяет, помещаются ли все допустимые значения в границы int.
Этот метод проверяет значение относительно диапазона поля в календарной системе ISO-8601. Этот диапазон может быть некорректным для других календарных систем. Используйте Chronology.range(ChronoField), чтобы получить правильный диапазон для другой календарной системы.
- Параметры:
-
value— проверяемое значение - Возвращает:
- переданное значение
isSupportedBy
public boolean isSupportedBy(TemporalAccessor temporal)
TemporalFieldОпределяет, поддерживает ли временной объект это поле. Если возвращается false, запросить это поле у временного объекта нельзя.
Существует два эквивалентных способа использовать этот метод. Первый — вызвать его напрямую. Второй — использовать TemporalAccessor.isSupported(TemporalField):
// these two lines are equivalent, but the second approach is recommended supported = thisField.isSupportedBy(temporal); supported = temporal.isSupported(thisField);Рекомендуется использовать второй подход,
isSupported(thisField), поскольку в коде он гораздо понятнее. Реализации должны определять, поддерживается ли поле, используя поля, доступные в ChronoField.
- Определено в:
-
isSupportedByв интерфейсеTemporalField - Параметры:
-
temporal— временной объект для запроса, не равный null - Возвращает:
- true, если для даты и времени можно запросить это поле; в противном случае false
rangeRefinedBy
public ValueRange rangeRefinedBy(TemporalAccessor temporal)
TemporalField Этот метод использует временной объект, чтобы определить диапазон допустимых значений для поля. Он похож на TemporalField.range(), однако уточняет результат с учетом временного объекта. Например, если поле — DAY_OF_MONTH, метод range не дает точного результата, поскольку длина месяца может составлять 28, 29, 30 или 31 день. Использование этого метода с датой позволяет получить точный диапазон, содержащий только один из этих четырех вариантов.
Существует два эквивалентных способа использовать этот метод. Первый — вызвать его напрямую. Второй — использовать TemporalAccessor.range(TemporalField):
// these two lines are equivalent, but the second approach is recommended range = thisField.rangeRefinedBy(temporal); range = temporal.range(thisField);Рекомендуется использовать второй подход,
range(thisField), поскольку в коде он гораздо понятнее. Реализации должны выполнять запросы и вычисления, используя поля, доступные в ChronoField. Если поле не поддерживается, необходимо выбросить UnsupportedTemporalTypeException.
- Определено в:
-
rangeRefinedByв интерфейсеTemporalField - Параметры:
-
temporal— временной объект, используемый для уточнения результата, не равный null - Возвращает:
- диапазон допустимых значений для этого поля, не равный null
getFrom
public long getFrom(TemporalAccessor temporal)
TemporalFieldЭтот метод запрашивает значение этого поля у временного объекта.
Существует два эквивалентных способа использовать этот метод. Первый — вызвать его напрямую. Второй — использовать TemporalAccessor.getLong(TemporalField) (или TemporalAccessor.get(TemporalField)):
// these two lines are equivalent, but the second approach is recommended value = thisField.getFrom(temporal); value = temporal.getLong(thisField);Рекомендуется использовать второй подход,
getLong(thisField), поскольку в коде он гораздо понятнее. Реализации должны выполнять запросы и вычисления, используя поля, доступные в ChronoField. Если поле не поддерживается, необходимо выбросить UnsupportedTemporalTypeException.
- Определено в:
-
getFromв интерфейсеTemporalField - Параметры:
-
temporal— временной объект для запроса, не равный null - Возвращает:
- значение этого поля, не равное null
adjustInto
public <R extends Temporal> R adjustInto(R temporal, long newValue)
TemporalField Этот метод возвращает новый временной объект на основе указанного, в котором изменено значение этого поля. Например, для LocalDate его можно использовать, чтобы задать год, месяц или день месяца. Возвращаемый объект имеет тот же наблюдаемый тип, что и указанный объект.
В некоторых случаях изменение поля определено не полностью. Например, если целевой объект — дата, соответствующая 31 января, изменение месяца на февраль будет неоднозначным. В таких случаях реализация должна определить результат. Обычно выбирается предыдущая допустимая дата — в данном примере последний допустимый день февраля.
Существует два эквивалентных способа использовать этот метод. Первый — вызвать его напрямую. Второй — использовать Temporal.with(TemporalField, long):
// these two lines are equivalent, but the second approach is recommended temporal = thisField.adjustInto(temporal, newValue); temporal = temporal.with(thisField, newValue);Рекомендуется использовать второй подход,
with(thisField, newValue), поскольку в коде он гораздо понятнее. Реализации должны выполнять запросы и вычисления, используя поля, доступные в ChronoField. Если поле не поддерживается, необходимо выбросить UnsupportedTemporalTypeException.
Реализации не должны изменять указанный временной объект. Вместо этого необходимо вернуть скорректированную копию исходного объекта. Это обеспечивает одинаковое безопасное поведение для неизменяемых и изменяемых реализаций.
- Определено в:
-
adjustIntoв интерфейсеTemporalField - Параметры типа:
R— тип объекта Temporal- Параметры:
-
temporal— временной объект для корректировки, не равный null -
newValue— новое значение поля - Возвращает:
- скорректированный временной объект, не равный null
toString
public String toString()
Enum- Определено в:
-
toStringв интерфейсеTemporalField - Переопределяет:
-
toStringв классеEnum<ChronoField> - Возвращает:
- имя этой константы перечисления
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.