Spec-Zone.ru › OpenJDK 21

Перечисление полей ChronoField

java.lang.Object
java.lang.Enum<ChronoField>
java.time.temporal.ChronoField
Все реализованные интерфейсы:
Serializable, Comparable<ChronoField>, Constable, TemporalField
public enum ChronoField extends Enum<ChronoField> implements TemporalField
Стандартный набор полей.

Этот набор полей обеспечивает доступ к полям для управления датой, временем или датой и временем. Стандартный набор полей можно расширить, реализовав TemporalField.

Эти поля предназначены для применения в нескольких календарных системах. Например, большинство календарных систем, отличных от ISO, определяют даты как год, месяц и день, только с немного другими правилами. Документация каждого поля объясняет, как оно работает.

Требования к реализации:
Это конечное, неизменяемое и потокобезопасное перечисление.
С тех пор:
1.8

Краткое описание вложенных классов

Вложенные классы/интерфейсы, объявленные в классе java.lang.Enum

Enum.EnumDesc<E extends Enum<E>>

Краткое описание констант перечисления

Константа перечисления Описание
ALIGNED_DAY_OF_WEEK_IN_MONTH
Выровненый день недели в месяце.
ALIGNED_DAY_OF_WEEK_IN_YEAR
Выровненый день недели в году.
ALIGNED_WEEK_OF_MONTH
Выровненная неделя в месяце.
ALIGNED_WEEK_OF_YEAR
Выровненная неделя в году.
AMPM_OF_DAY
Части суток (AM/PM).
CLOCK_HOUR_OF_AMPM
Часы по системе AM/PM.
CLOCK_HOUR_OF_DAY
Часы по 24-часовой системе.
DAY_OF_MONTH
День месяца.
DAY_OF_WEEK
День недели.
DAY_OF_YEAR
День года.
EPOCH_DAY
Эпохальный день, основанный на эпохе Java 1970-01-01 (ISO).
ERA
Эра.
HOUR_OF_AMPM
Часы по системе AM/PM.
HOUR_OF_DAY
Часы по 24-часовой системе.
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
Пролептический год.
YEAR_OF_ERA
Год в рамках эры.

Краткое описание методов

Модификатор и тип Метод Описание
<R extends Temporal>
R
adjustInto(R temporal, long newValue)
Возвращает копию указанного временного объекта со значением этого поля, установленным.
int checkValidIntValue(long value)
Проверяет, является ли указанное значение допустимым и помещается в int.
long checkValidValue(long value)
Проверяет, является ли указанное значение допустимым для этого поля.
TemporalUnit getBaseUnit()
Возвращает единицу измерения поля.
long getFrom(TemporalAccessor temporal)
Возвращает значение этого поля из указанного временного объекта.
TemporalUnit getRangeUnit()
Возвращает диапазон значений поля.
boolean isDateBased()
Проверяет, представляет ли это поле компонент даты.
boolean isSupportedBy(TemporalAccessor temporal)
Проверяет, поддерживается ли это поле временным объектом.
boolean isTimeBased()
Проверяет, представляет ли это поле компонент времени.
ValueRange range()
Возвращает диапазон допустимых значений для поля.
ValueRange rangeRefinedBy(TemporalAccessor temporal)
Получение диапазона допустимых значений для этого поля с использованием временного объекта для уточнения результата.
String toString()
Возвращает имя этой константы перечисления, как указано в объявлении.
static ChronoField valueOf(String name)
Возвращает константу перечисления этого класса с указанным именем.
static ChronoField[] values()
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления.

Методы, объявленные в классе java.lang.Enum

clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf

Методы, объявленные в классе java.lang.Object

getClass, notify, notifyAll, wait, wait, wait

Методы, объявленные в интерфейсе java.time.temporal.TemporalField

getDisplayName, 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.

Секунда минуты

public static final ChronoField SECOND_OF_MINUTE
Секунда минуты.

Указывает секунду в пределах минуты, от 0 до 59. Это поле имеет одинаковое значение для всех систем календаря.

При разборе этого поля поведение эквивалентно следующему: значение проверяется в строгом и интеллектуальном режиме, но не в поблажающем.

Секунда дня

public static final ChronoField SECOND_OF_DAY
Секунда дня.

Указывает секунду в пределах дня, от 0 до (24 * 60 * 60) - 1. Это поле имеет одинаковое значение для всех систем календаря.

При разборе этого поля поведение эквивалентно следующему: значение проверяется в строгом и интеллектуальном режиме, но не в поблажающем. Значение разбивается для формирования полей SECOND_OF_MINUTE, MINUTE_OF_HOUR и HOUR_OF_DAY.

Минута часа

public static final ChronoField MINUTE_OF_HOUR
Минута часа.

Указывает минуту в пределах часа, от 0 до 59. Это поле имеет одинаковое значение для всех систем календаря.

При разборе этого поля поведение эквивалентно следующему: значение проверяется в строгом и интеллектуальном режиме, но не в поблажающем.

Минута дня

public static final ChronoField MINUTE_OF_DAY
Минута дня.

Указывает минуту в пределах дня, от 0 до (24 * 60) - 1. Это поле имеет одинаковое значение для всех систем календаря.

При разборе этого поля поведение эквивалентно следующему: значение проверяется в строгом и интеллектуальном режиме, но не в поблажающем. Значение разбивается для формирования полей MINUTE_OF_HOUR и HOUR_OF_DAY.

Час AM/PM

public static final ChronoField HOUR_OF_AMPM
Час в формате AM/PM.

Указывает час в формате AM/PM, от 0 до 11. Это час, который можно увидеть на стандартных 12-часовых цифровых часах. Это поле имеет одинаковое значение для всех систем календаря.

При разборе этого поля поведение эквивалентно следующему: значение проверяется от 0 до 11 в строгом и интеллектуальном режиме. В поблажающем режиме значение не проверяется. Оно комбинируется с AMPM_OF_DAY для формирования HOUR_OF_DAY, умножая значение AMPM_OF_DAY на 12.

См. CLOCK_HOUR_OF_AMPM для связанного поля, которое считает часы от 1 до 12.

Час цифровых часов AM/PM

public static final ChronoField CLOCK_HOUR_OF_AMPM
Час в формате AM/PM цифровых часов.

Указывает час в формате AM/PM, от 1 до 12. Это час, который можно увидеть на стандартных 12-часовых аналоговых часах. Это поле имеет одинаковое значение для всех систем календаря.

При разборе этого поля поведение эквивалентно следующему: значение проверяется от 1 до 12 в строгом режиме и от 0 до 12 в интеллектуальном режиме. В поблажающем режиме значение не проверяется. Поле преобразуется в HOUR_OF_AMPM с тем же значением, за исключением случая, когда значение равно 12, в этом случае оно преобразуется в 0.

См. HOUR_OF_AMPM для связанного поля, которое считает часы от 0 до 11.

Час дня

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.

ЧАС_СУТОК

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_СУТОК

public static final ChronoField AMPM_OF_DAY
AM/PM в сутках.

Указывает AM/PM в сутках от 0 (AM) до 1 (PM). Это поле имеет одинаковое значение для всех календарных систем.

При парсинге этого поля поведение эквивалентно следующему: значение проверяется от 0 до 1 в строгом и интеллектуальном режиме. В режиме снисходительности значение не проверяется. Оно комбинируется с HOUR_OF_AMPM (если отсутствует, по умолчанию '6') для формирования HOUR_OF_DAY путем умножения значения AMPM_OF_DAY на 12.

ДЕНЬ_НЕДЕЛИ

public static final ChronoField DAY_OF_WEEK
День недели, например, вторник.

Представляет стандартное понятие дня недели. В стандартной системе календаря ISO это значения от понедельника (1) до воскресенья (7). Класс DayOfWeek может использоваться для интерпретации результата.

Большинство не-ISO систем календаря также определяют семидневную неделю, соответствующую ISO. Эти календарные системы также должны использовать ту же систему нумерации, от понедельника (1) до воскресенья (7), что позволяет использовать DayOfWeek.

Календарные системы, не имеющие стандартной семидневной недели, должны реализовывать это поле, если они имеют аналогичное понятие именованных или пронумерованных дней в периоде, подобном неделе. Рекомендуется, чтобы нумерация начиналась с 1.

ВЫРАВНЯННЫЙ_ДЕНЬ_НЕДЕЛИ_В_МЕСЯЦЕ

public static final ChronoField ALIGNED_DAY_OF_WEEK_IN_MONTH
Выравненный день недели в месяце.

Представляет собой понятие счета дней в периоде недели, где недели выровнены по началу месяца. Это поле обычно используется с ALIGNED_WEEK_OF_MONTH.

Например, в календарных системах с семидневной неделей первая выровненная неделя месяца начинается с 1-го числа, вторая выровненная неделя начинается с 8-го числа и так далее. В каждой из этих выровненных недель дни нумеруются от 1 до 7 и возвращаются в качестве значения этого поля. Таким образом, дни с 1 по 7 числа месяца будут иметь значения выравненного дня недели от 1 до 7. А дни с 8 по 14 числа месяца будут повторять это с значениями выравненного дня недели от 1 до 7.

Календарные системы, не имеющие семидневной недели, обычно реализуют это поле аналогичным образом, но с использованием другой длины недели.

ВЫРАВНЯННЫЙ_ДЕНЬ_НЕДЕЛИ_В_ГОДУ

public static final ChronoField ALIGNED_DAY_OF_WEEK_IN_YEAR
Выравненный день недели в году.

Представляет собой понятие счета дней в периоде недели, где недели выровнены по началу года. Это поле обычно используется с ALIGNED_WEEK_OF_YEAR.

Например, в календарных системах с семидневной неделей первая выровненная неделя года начинается с 1-го дня года, вторая выровненная неделя начинается со 2-го дня года и так далее. В каждой из этих выровненных недель дни нумеруются от 1 до 7 и возвращаются в качестве значения этого поля. Таким образом, дни с 1 по 7 дня года будут иметь значения выравненного дня недели от 1 до 7. А дни с 8 по 14 дня года будут повторять это с значениями выравненного дня недели от 1 до 7.

Календарные системы, не имеющие семидневной недели, обычно реализуют это поле аналогичным образом, но с использованием другой длины недели.

ДЕНЬ_МЕСЯЦА

public static final ChronoField DAY_OF_MONTH
День месяца.

Представляет собой понятие дня в месяце. В стандартной ISO календарной системе это значения от 1 до 31 в большинстве месяцев. Апрель, июнь, сентябрь, ноябрь имеют дни с 1 по 30, а февраль имеет дни с 1 по 28 или 29 в високосном году.

Не-ISO календарные системы должны реализовывать это поле, используя наиболее распространенные значения дня месяца для пользователей календарной системы. Обычно это счет дней от 1 до длительности месяца.

ДЕНЬ_ГОДА

public static final ChronoField DAY_OF_YEAR
День года.

Представляет собой понятие дня в году. В стандартной ISO календарной системе это значения от 1 до 365 в обычные годы и от 1 до 366 в високосные годы.

Не-ISO календарные системы должны реализовывать это поле, используя наиболее распространенные значения дня года для пользователей календарной системы. Обычно это счет дней от 1 до длительности года.

Обратите внимание, что у не-ISO календарной системы может быть система нумерации года, которая меняется в другой точке, по сравнению с естественным сбросом в нумерации месяцев. Примером является японская календарная система, где смена эры, которая сбрасывает номер года до 1, может произойти в любой день. Сброс эры и года также приводит к сбросу дня года до 1, но не месяца или дня месяца.

ЭПОХА_ДЕНЬ

public static final ChronoField EPOCH_DAY
День эпохи, основанный на эпохе Java 1970-01-01 (ISO).

Это последовательный счет дней, где 1970-01-01 (ISO) равен нулю. Обратите внимание, что это использует локальный временной ряд, игнорируя смещение и часовой пояс.

Это поле строго определено так, чтобы иметь одинаковое значение во всех календарных системах. Это необходимо для обеспечения взаимодействия между календарями.

Диапазон EpochDay находится между (LocalDate.MIN.toEpochDay(), LocalDate.MAX.toEpochDay()) включительно.

ВЫРАВНЯННАЯ_НЕДЕЛЯ_В_МЕСЯЦЕ

public static final ChronoField ALIGNED_WEEK_OF_MONTH
Выровненная неделя в месяце.

Представляет собой понятие счета недель в периоде месяца, где недели выровнены по началу месяца. Это поле обычно используется с ALIGNED_DAY_OF_WEEK_IN_MONTH.

Например, в календарных системах с семидневной неделей первая выровненная неделя месяца начинается с 1-го числа, вторая выровненная неделя начинается с 8-го числа и так далее. Таким образом, значения дня месяца с 1 по 7 находятся в 1-й выровненной неделе, а значения дня месяца с 8 по 14 - во 2-й выровненной неделе и так далее.

Календарные системы, не имеющие семидневной недели, обычно реализуют это поле аналогичным образом, но с использованием другой длины недели.

ВЫРАВНЯННАЯ_НЕДЕЛЯ_В_ГОДУ

public static final ChronoField ALIGNED_WEEK_OF_YEAR
Выровненная неделя в году.

Представляет собой понятие счета недель в периоде года, где недели выровнены по началу года. Это поле обычно используется с ALIGNED_DAY_OF_WEEK_IN_YEAR.

Например, в календарных системах с семидневной неделей первая выровненная неделя года начинается с 1-го дня года, вторая выровненная неделя начинается со 2-го дня года и так далее. Таким образом, значения дня года с 1 по 7 находятся в 1-й выровненной неделе, а значения дня года с 8 по 14 - во 2-й выровненной неделе и так далее.

Календарные системы, не имеющие семидневной недели, обычно реализуют это поле аналогичным образом, но с использованием другой длины недели.

МЕСЯЦ_ГОДА

public static final ChronoField MONTH_OF_YEAR
Месяц года, например, март.

Представляет собой понятие месяца в году. В стандартной ISO календарной системе это значения от января (1) до декабря (12).

Не-ISO календарные системы должны реализовывать это поле, используя наиболее распространенные значения месяца года для пользователей календарной системы. Обычно это счет месяцев, начиная с 1.

ПРОЛЕПТИЧЕСКИЙ_МЕСЯЦ

public static final ChronoField PROLEPTIC_MONTH
Пролептический месяц, считая месяцы последовательно с года 0.

Это последовательный счет месяцев, где первый месяц в пролептическом году нулевом имеет значение ноль. Позже месяцы имеют все большее значение. Более ранние месяцы имеют все меньшее значение. В последовательности месяцев нет пробелов или разрывов. Обратите внимание, что это использует локальный временной ряд, игнорируя смещение и часовой пояс.

В стандартной ISO календарной системе июнь 2012 года будет иметь значение (2012 * 12 + 6 - 1). Это поле предназначено в основном для внутреннего использования.

Не-ISO календарные системы должны реализовывать это поле в соответствии с приведенным выше определением. Это просто простой счет месяцев, прошедших от начала пролептического года 0. Все календарные системы с полным определением пролептического года будут иметь год ноль. Если у календарной системы есть минимальный год, исключающий год ноль, то он должен быть экстраполирован для определения этого метода.

ГОД_ЭРЫ

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 определены две эры: «до н. э.» и «н. э.». Эра «н. э.» используется в настоящее время, а год в рамках эры варьируется от 1 до максимального значения. Эра «до н. э.» — это предыдущая эра, и год в рамках эры отсчитывается назад.

Например, вычитание года каждый раз даёт следующее:
- пролептический год 2 = год в эре 2 (н. э.)
- пролептический год 1 = год в эре 1 (н. э.)
- пролептический год 0 = год в эре 1 (до н. э.)
- пролептический год -1 = год в эре 2 (до н. э.)

Обратите внимание, что стандарт ISO-8601 фактически не определяет эры. Также обратите внимание, что ISO-эры не совпадают с хорошо известными эрами AD/BC из-за перехода от юлианского к григорианскому календарю.

Системы календарей, отличные от ISO, должны реализовывать это поле, используя наиболее общепринятое значение года в рамках эры для пользователей этой системы календаря. Поскольку большинство систем календарей имеют только две эры, нумерация года в рамках эры, как правило, будет такой же, как и в системе календаря ISO. Значение года в рамках эры, как правило, всегда должно быть положительным, однако это не является обязательным.

ГОД

public static final ChronoField YEAR
Пролептический год, например 2012.

Представляет собой понятие года, отсчитываемого последовательно с использованием отрицательных чисел. Пролептический год не интерпретируется в терминах эры. См. 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, может быть лучшим вариантом.

ЭРА

public static final ChronoField ERA
Эра.

Представляет собой понятие эры, являющейся крупнейшим разделением временной линии. Это поле обычно используется с YEAR_OF_ERA.

В стандартной системе календаря ISO определены две эры: «до н. э.» и «н. э.». Эра «н. э.» используется в настоящее время, а год в рамках эры варьируется от 1 до максимального значения. Эра «до н. э.» — это предыдущая эра, и год в рамках эры отсчитывается назад. См. YEAR_OF_ERA для полного примера.

Системы календарей, отличные от ISO, должны реализовывать это поле для определения эр. Значению эры, активной 01.01.1970 (ISO), должно быть присвоено значение 1. Более ранние эры должны иметь последовательно меньшие значения. Более поздние эры должны иметь последовательно большие значения.

INSTANT_SECONDS

public static final ChronoField INSTANT_SECONDS
Эпохальные секунды момента.

Представляет собой последовательный отсчёт секунд, где 1970-01-01T00:00Z (ISO) равен нулю. Это поле может быть использовано вместе с NANO_OF_SECOND для представления доли секунды.

Instant представляет собой мгновенную точку на временной шкале. Сами по себе мгновения не содержат достаточной информации, чтобы получить локальное значение даты и времени. Только в паре со смещением или часовым поясом можно рассчитать локальную дату или время.

Это поле строго определено и имеет одинаковый смысл во всех системах календарей. Это необходимо для обеспечения взаимодействия между календарями.

OFFSET_SECONDS

public static final ChronoField OFFSET_SECONDS
Смещение от UTC/Гринвича.

Представляет собой смещение в секундах местного времени от UTC/Гринвича.

ZoneOffset представляет собой временной интервал, на который местное время отличается от UTC/Гринвича. Обычно это фиксированное количество часов и минут. Оно эквивалентно total amount смещения в секундах. Например, зимой в Париже смещение составляет +01:00, что равно 3600 секундам.

Это поле строго определено и имеет одинаковый смысл во всех системах календарей. Это необходимо для обеспечения взаимодействия между календарями.

Подробное описание методов

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) для доступа к правильному диапазону для другой системы календаря.

Parameters:
value - проверяемое значение
Returns:
переданное значение

isSupportedBy

public boolean isSupportedBy(TemporalAccessor temporal)
Описание скопировано из интерфейса: TemporalField
Проверяет, поддерживается ли это поле объектом временного объекта.

Это определяет, поддерживает ли временной аксессор это поле. Если это возвращает false, то временной объект не может быть запрошен для этого поля.

Существует два эквивалентных способа использования этого метода. Первый — вызвать этот метод напрямую. Второй — использовать TemporalAccessor.isSupported(TemporalField):

   // these two lines are equivalent, but the second approach is recommended
   temporal = thisField.isSupportedBy(temporal);
   temporal = temporal.isSupported(thisField);
 
Рекомендуется использовать второй подход, isSupported(TemporalField), так как он намного понятнее в коде.

Реализации должны определять, поддерживаются ли они с использованием полей, доступных в ChronoField.

Specified by:
isSupportedBy в интерфейсе TemporalField
Parameters:
temporal - временной объект для запроса, не null
Returns:
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
   temporal = thisField.rangeRefinedBy(temporal);
   temporal = temporal.range(thisField);
 
Рекомендуется использовать второй подход, range(TemporalField), так как он намного понятнее в коде.

Реализации должны выполнять любые запросы или вычисления, используя поля, доступные в ChronoField. Если поле не поддерживается, необходимо выбросить UnsupportedTemporalTypeException.

Specified by:
rangeRefinedBy в интерфейсе TemporalField
Parameters:
temporal - временной объект, используемый для уточнения результата, не null
Returns:
диапазон допустимых значений для этого поля, не 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
   temporal = thisField.getFrom(temporal);
   temporal = temporal.getLong(thisField);
 
Рекомендуется использовать второй подход, getLong(TemporalField), так как он намного понятнее в коде.

Реализации должны выполнять любые запросы или вычисления, используя поля, доступные в ChronoField. Если поле не поддерживается, необходимо выбросить UnsupportedTemporalTypeException.

Specified by:
getFrom в интерфейсе TemporalField
Parameters:
temporal - временной объект для запроса, не null
Returns:
значение этого поля, не 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);
   temporal = temporal.with(thisField);
 
Рекомендуется использовать второй подход, with(TemporalField), так как он намного понятнее в коде.

Реализации должны выполнять любые запросы или вычисления, используя поля, доступные в ChronoField. Если поле не поддерживается, необходимо выбросить UnsupportedTemporalTypeException.

Реализации не должны изменять указанный временной объект. Вместо этого должен возвращаться скорректированная копия оригинала. Это обеспечивает эквивалентное безопасное поведение для неизменяемых и изменяемых реализаций.

Specified by:
adjustInto в интерфейсе TemporalField
Type Parameters:
R - тип временного объекта
Parameters:
temporal - временной объект для корректировки, не null
newValue - новое значение поля
Returns:
скорректированный временной объект, не null

toString

public String toString()
Описание скопировано из класса: Enum
Возвращает имя этой константы перечисления, как указано в объявлении. Этот метод можно переопределить, хотя это обычно не обязательно или нежелательно. Класс перечисления должен переопределить этот метод, когда существует более "дружественный для программиста" строковый вид.
Specified by:
toString в интерфейсе TemporalField
Overrides:
toString в классе Enum<ChronoField>
Returns:
имя этой константы перечисления

© 1993, 2023, 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.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/time/temporal/ChronoField.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API