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