Enum Class 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> |
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() |
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления. |
Methods declared in class java.lang.Enum
clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
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, от 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, от 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 в сутках, от 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
Это последовательный счёт дней, где 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
Это последовательный счёт месяцев, где первый месяц в пролептическом году ноль имеет значение ноль. Более поздние месяцы имеют всё большие значения. Более ранние месяцы имеют всё меньшие значения. В последовательности месяцев нет пробелов или разрывов. Обратите внимание, что это использует локальную временную линию, игнорируя смещение и часовой пояс.
В стандартной 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
Представляет концепцию года, отсчитываемую последовательно и использующую отрицательные числа. Пролептический год не интерпретируется в рамках эры. См. 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/Гринвича.
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 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 для нахождения диапазона допустимых значений для поля. Это похоже на 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.
Существует два эквивалентных способа использования этого метода. Первый — вызвать этот метод непосредственно. Второй — использовать 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, основанный на указанном, со значением для этого поля, изменённым. Например, в 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