Spec-Zone.ru › OpenJDK 24

Enum Class ChronoField

java.lang.Object
java.lang.Enum<ChronoField>
java.time.temporal.ChronoField
All Implemented Interfaces:
Serializable, Comparable<ChronoField>, Constable, TemporalField
public enum ChronoField extends Enum<ChronoField> implements TemporalField
Стандартный набор полей.

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

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

Implementation Requirements:
Это конечный, неизменяемый и потокобезопасный перечисление.
Since:
1.8

Nested Class Summary

Nested classes/interfaces declared in class java.lang.Enum

Enum.EnumDesc<E extends Enum<E>>

Enum Constant Summary

Enum Constant Description
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
Час в формате 12-часового цикла (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
Пролептический год, например 2012.
YEAR_OF_ERA
Год в рамках эры.

Method Summary

Modifier and Type Method Description
<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()
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления.

Methods declared in class java.lang.Enum

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

Methods declared in class java.lang.Object

getClass, notify, notifyAll, wait, wait, wait

Methods declared in interface 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 с умножением значения на 1000.

При разборе этого поля оно ведет себя следующим образом: значение проверяется в строгом и интеллектуальном режиме, но не в поблажливом режиме. Поле разрешается в сочетании с 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 с умножением значения на 1000.

При разборе этого поля оно ведет себя следующим образом: значение проверяется в строгом и интеллектуальном режиме, но не в поблажливом режиме. Значение разделяется для формирования полей 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 * 1000) - 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 находятся во второй выровненной неделе и так далее.

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

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

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

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

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

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

МЕСЯЦ_ГОДА

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. Все календарные системы с полным пролептическим определением года будут иметь год ноль. Если в календарной системе есть минимальный год, который исключает год ноль, то его необходимо экстраполировать, чтобы это определение было определено.

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

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

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

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

YEAR

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, может быть лучшим вариантом.

ERA

public static final ChronoField ERA
Эра.

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

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

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

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

checkValidIntValue

public int checkValidIntValue(long value)
Проверяет, является ли указанное значение допустимым и помещается в int.

Проверяет, что значение находится в внешнем диапазоне допустимых значений, возвращаемых range(). Также проверяет, что все допустимые значения находятся в пределах границ int.

Этот метод проверяет диапазон поля в системе календаря ISO-8601. Этот диапазон может быть некорректным для других систем календаря. Используйте Chronology.range(ChronoField) для доступа к правильному диапазону для другой системы календаря.

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

isSupportedBy

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

Определяет, поддерживает ли объект temporal accessor это поле. Если это возвращает false, то temporal нельзя запросить для этого поля.

Существует два эквивалентных способа использования этого метода. Первый — вызвать этот метод непосредственно. Второй — использовать 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 - запрашиваемый объект temporal, не null
Returns:
true, если дату-время можно запросить для этого поля, false — в противном случае

rangeRefinedBy

public ValueRange rangeRefinedBy(TemporalAccessor temporal)
Описание скопировано из интерфейса: TemporalField
Получение диапазона допустимых значений для этого поля с использованием объекта temporal для уточнения результата.

Использует объект temporal для нахождения диапазона допустимых значений для поля. Это похоже на 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 - объект temporal, используемый для уточнения результата, не null
Returns:
диапазон допустимых значений для этого поля, не null

getFrom

public long getFrom(TemporalAccessor temporal)
Описание скопировано из интерфейса: TemporalField
Получение значения этого поля из указанного объекта temporal.

Запрашивает значение этого поля у объекта temporal.

Существует два эквивалентных способа использования этого метода. Первый — вызвать этот метод непосредственно. Второй — использовать 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 - запрашиваемый объект temporal, не null
Returns:
значение этого поля, не null

adjustInto

public <R extends Temporal> R adjustInto(R temporal, long newValue)
Описание скопировано из интерфейса: TemporalField
Возвращает копию указанного объекта temporal с установленным значением этого поля.

Возвращает новый объект temporal, основанный на указанном, со значением для этого поля, изменённым. Например, в 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.

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

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

toString

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

© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/time/temporal/ChronoField.html

Spec-Zone.ru

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