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 |
Часы до полудня/после полудня. |
CLOCK_HOUR_OF_AMPM |
Часы по формату до полудня/после полудня. |
CLOCK_HOUR_OF_DAY |
Часы в сутках. |
DAY_OF_MONTH |
День месяца. |
DAY_OF_WEEK |
День недели, например, вторник. |
DAY_OF_YEAR |
День в году. |
EPOCH_DAY |
Эпоха в днях, основанная на эпохе Java 1970-01-01 (ISO). |
ERA |
Эра. |
HOUR_OF_AMPM |
Часы по формату до полудня/после полудня. |
HOUR_OF_DAY |
Часы в сутках. |
INSTANT_SECONDS |
Эпоха в секундах. |
MICRO_OF_DAY |
Микросекунды в сутках. |
MICRO_OF_SECOND |
Микросекунды в секунде. |
MILLI_OF_DAY |
Миллисекунды в сутках. |
MILLI_OF_SECOND |
Миллисекунды в секунде. |
MINUTE_OF_DAY |
Минуты в сутках. |
MINUTE_OF_HOUR |
Минуты в часе. |
MONTH_OF_YEAR |
Месяц в году, например, март. |
NANO_OF_DAY |
Наносекунды в сутках. |
NANO_OF_SECOND |
Наносекунды в секунде. |
OFFSET_SECONDS |
Смещение от UTC/Гринвича. |
PROLEPTIC_MONTH |
Пролептический месяц, считая месяцы последовательно с года 0. |
SECOND_OF_DAY |
Секунды в сутках. |
SECOND_OF_MINUTE |
Секунды в минуте. |
YEAR |
Пролептический год, например, 2012. |
YEAR_OF_ERA |
Год в рамках эры. |
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 дня года, вторая выровненная неделя начинается с 8 дня года и так далее. Внутри каждой из этих выровненных недель дни нумеруются от 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 находятся в выровненной неделе 2 и так далее.
Календарные системы, не имеющие семидневной недели, обычно должны реализовывать это поле аналогичным образом, но с использованием другой длины недели.
ВЫРОВНЯННАЯ_НЕДЕЛЯ_В_ГОДУ
public static final ChronoField ALIGNED_WEEK_OF_YEAR
Представляет понятие количества недель в периоде года, где недели выровнены с началом года. Это поле обычно используется с ALIGNED_DAY_OF_WEEK_IN_YEAR.
Например, в календарных системах с семидневной неделей первая выровненная неделя года начинается с 1 дня года, вторая выровненная неделя начинается со 2 дня года и так далее. Таким образом, значения дня года с 1 по 7 находятся в выровненной неделе 1, а значения дня года с 8 по 14 находятся в выровненной неделе 2 и так далее.
Календарные системы, не имеющие семидневной недели, обычно должны реализовывать это поле аналогичным образом, но с использованием другой длины недели.
МЕСЯЦ_ГОДА
public static final ChronoField MONTH_OF_YEAR
Представляет собой понятие месяца в году. В стандартной календарной системе ISO это значения от января (1) до декабря (12).
Не-ISO календарные системы должны реализовывать это поле, используя наиболее распознаваемые значения месяца года для пользователей календарной системы. Обычно это счёт месяцев, начиная с 1.
ПРОЛЕПТИЧЕСКИЙ_МЕСЯЦ
public static final ChronoField PROLEPTIC_MONTH
Это последовательный счёт месяцев, где первый месяц в пролептическом году ноль имеет значение ноль. Более поздние месяцы имеют всё большие значения. Ранние месяцы имеют всё меньшие значения. В последовательности месяцев нет пробелов или разрывов. Обратите внимание, что это использует локальное временное шкалу, игнорируя смещение и часовой пояс.
В стандартной календарной системе ISO июнь 2012 года будет иметь значение (2012 * 12 + 6 - 1). Это поле предназначено в основном для внутреннего использования.
Не-ISO календарные системы должны реализовывать это поле в соответствии с вышеуказанным определением. Это просто простой подсчет прошедших месяцев с начала пролептического года 0. Все календарные системы с полным определением пролептического года будут иметь год ноль. Если календарная система имеет минимальный год, исключающий год ноль, то он должен быть экстраполирован, чтобы это определение было определено.
YEAR_OF_ERA
public static final ChronoField YEAR_OF_ERA
Представляет собой понятие года в рамках эры. Это поле обычно используется с ERA.
Стандартная модель представления даты основана на трёх понятиях - год, месяц и день. Они соответствуют полям YEAR, MONTH_OF_YEAR и DAY_OF_MONTH. Обратите внимание, что нет ссылок на эры. Полная модель даты требует четырёх понятий - эра, год, месяц и день. Они соответствуют полям ERA, YEAR_OF_ERA, MONTH_OF_YEAR и DAY_OF_MONTH. Использование этого поля или поля YEAR зависит от используемой модели. Более подробно об этом см. в ChronoLocalDate.
В стандартной системе календарей ISO определены две эры, 'BCE' и 'CE'. Эра 'CE' используется в настоящее время, а год в рамках эры принимает значения от 1 до максимального значения. Эра 'BCE' - предыдущая эра, и год в рамках эры отсчитывается назад.
Например, вычитание года каждый раз даёт следующее:
- пролептический год 2 = год в рамках эры 2 'CE'
- пролептический год 1 = год в рамках эры 1 'CE'
- пролептический год 0 = год в рамках эры 1 'BCE'
- пролептический год -1 = год в рамках эры 2 'BCE'
Обратите внимание, что стандарт ISO-8601 фактически не определяет эры. Также обратите внимание, что ISO-эры не совпадают с широко известными эрами AD/BC из-за перехода между юлианским и григорианским календарями.
Календарные системы, отличные от ISO, должны реализовывать это поле, используя наиболее понятные значения года в рамках эры для пользователей этой системы календаря. Поскольку большинство календарных систем имеют только две эры, нумерация года в рамках эры обычно будет такой же, как и в системе календарей ISO. Значение года в рамках эры, как правило, должно быть положительным, хотя это и необязательно.
YEAR
public static final ChronoField YEAR
Представляет собой понятие года, отсчитываемого последовательно с использованием отрицательных чисел. Пролептический год не интерпретируется в терминах эры. См. YEAR_OF_ERA для примера сопоставления пролептического года с годом в рамках эры.
Стандартная модель представления даты основана на трёх понятиях - год, месяц и день. Они соответствуют полям YEAR, MONTH_OF_YEAR и DAY_OF_MONTH. Обратите внимание, что нет ссылок на эры. Полная модель даты требует четырёх понятий - эра, год, месяц и день. Они соответствуют полям ERA, YEAR_OF_ERA, MONTH_OF_YEAR и DAY_OF_MONTH. Использование этого поля или поля YEAR_OF_ERA зависит от используемой модели. Более подробно об этом см. в ChronoLocalDate.
Календарные системы, отличные от ISO, должны реализовывать это поле следующим образом. Если календарная система имеет только две эры, до и после фиксированной даты, то значение пролептического года должно совпадать со значением года в рамках эры для более поздней эры и увеличиваться с отрицательным значением для более ранней эры. Если календарная система имеет более двух эр, то значение пролептического года может быть определено любым подходящим значением, хотя определение его таким же, как в ISO, может быть лучшим вариантом.
ERA
public static final ChronoField ERA
Представляет понятие эры, которое является крупнейшей единицей временной шкалы. Это поле обычно используется с YEAR_OF_ERA.
В стандартной системе календарей ISO определены две эры, 'BCE' и 'CE'. Эра 'CE' используется в настоящее время, а год в рамках эры принимает значения от 1 до максимального значения. Эра 'BCE' - предыдущая эра, и год в рамках эры отсчитывается назад. Полный пример см. в YEAR_OF_ERA.
Календарные системы, отличные от ISO, должны реализовывать это поле для определения эр. Значению эры, активной 1970-01-01 (ISO), должно быть присвоено значение 1. Более ранние эры должны иметь последовательно меньшие значения. Более поздние эры должны иметь последовательно большие значения.
INSTANT_SECONDS
public static final ChronoField INSTANT_SECONDS
Представляет собой последовательный отсчёт секунд, где 1970-01-01T00:00Z (ISO) равен нулю. Это поле можно использовать с NANO_OF_SECOND для представления дробной части секунды.
Instant представляет собой мгновенную точку на временной шкале. Само по себе мгновение содержит недостаточно информации для получения локальной даты и времени. Только в сочетании со смещением или часовым поясом можно рассчитать локальную дату или время.
Это поле строго определено для одинакового смысла во всех календарных системах. Это необходимо для обеспечения взаимодействия между календарями.
OFFSET_SECONDS
public static final ChronoField OFFSET_SECONDS
Представляет собой понятие смещения во времени в секундах местного времени относительно UTC/Гринвича.
ZoneOffset представляет собой период времени, на который местное время отличается от UTC/Гринвича. Обычно это фиксированное количество часов и минут. Оно эквивалентно значению total amount смещения в секундах. Например, зимой Париж имеет смещение +01:00, что составляет 3600 секунд.
Это поле строго определено для одинакового смысла во всех календарных системах. Это необходимо для обеспечения взаимодействия между календарями.
Подробности методов
values
public static ChronoField[] values()
- Returns:
- массив, содержащий константы этого перечисления, в порядке их объявления
valueOf
public static ChronoField valueOf(String name)
- Parameters:
-
name- имя константы перечисления, которое нужно вернуть. - Returns:
- константа перечисления с заданным именем
- Throws:
-
IllegalArgumentException- если в этом классе перечисления нет константы с заданным именем -
NullPointerException- если аргумент равен null
getBaseUnit
public TemporalUnit getBaseUnit()
TemporalField Единицей измерения поля является период, изменяющийся в заданном диапазоне. Например, в поле 'MonthOfYear' единицей является 'Месяцы'. См. также TemporalField.getRangeUnit().
- Specified by:
-
getBaseUnitв интерфейсеTemporalField - Returns:
- единица, определяющая базовую единицу измерения поля, не null
getRangeUnit
public TemporalUnit getRangeUnit()
TemporalField Диапазон поля — это период, в рамках которого изменяется поле. Например, в поле 'MonthOfYear' диапазон составляет 'Года'. См. также TemporalField.getBaseUnit().
Диапазон никогда не равен null. Например, поле 'Year' — сокращение для 'YearOfForever'. Поэтому его единица измерения — 'Года', а диапазон — 'Вечность'.
- Specified by:
-
getRangeUnitв интерфейсеTemporalField - Returns:
- единица, определяющая диапазон поля, не null
range
public ValueRange range()
Все поля могут быть выражены как целое число long. Этот метод возвращает объект, описывающий допустимый диапазон для этого значения.
Этот метод возвращает диапазон поля в системе календарей ISO-8601. Этот диапазон может быть некорректным для других систем календарей. Используйте Chronology.range(ChronoField) для доступа к правильному диапазону для другой системы календарей.
Обратите внимание, что результат описывает только минимальное и максимальное допустимые значения, и не стоит делать из них слишком много выводов. Например, могут быть значения в этом диапазоне, которые недопустимы для поля.
- Specified by:
-
rangeв интерфейсеTemporalField - Returns:
- диапазон допустимых значений для поля, не null
isDateBased
public boolean isDateBased()
Поля от дня недели до эры являются основанными на дате.
- Specified by:
-
isDateBasedв интерфейсеTemporalField - Returns:
- true, если это компонент даты
isTimeBased
public boolean isTimeBased()
Поля от наносекунд до ам/пм являются основанными на времени.
- Specified by:
-
isTimeBasedв интерфейсеTemporalField - Returns:
- 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Определяет, поддерживает ли временной аксессор это поле. Если возвращается false, то временной аксессор не может быть запрошен для этого поля.
Существуют два эквивалентных способа использования этого метода. Первый — вызвать этот метод непосредственно. Второй — использовать TemporalAccessor.isSupported(TemporalField):
// these two lines are equivalent, but the second approach is recommended temporal = thisField.isSupportedBy(temporal); temporal = temporal.isSupported(thisField);Рекомендуется использовать второй подход,
isSupported(TemporalField), так как он намного понятнее в коде. Реализации должны определять, поддерживаются ли они с использованием полей, доступных в ChronoField.
- Specified by:
-
isSupportedByв интерфейсеTemporalField - Parameters:
-
temporal- временной объект для запроса, не null - Returns:
- true, если дату-время можно запросить для этого поля, false — если нет
rangeRefinedBy
public ValueRange rangeRefinedBy(TemporalAccessor temporal)
TemporalField Использует временной объект для определения диапазона допустимых значений для поля. Это похоже на TemporalField.range(), однако этот метод уточняет результат с использованием временного объекта. Например, если поле — DAY_OF_MONTH, метод range не точен, так как существует четыре возможные длины месяца: 28, 29, 30 и 31 день. Использование этого метода с датой позволяет получить точный диапазон, возвращая только один из этих четырех вариантов.
Существуют два эквивалентных способа использования этого метода. Первый — вызвать этот метод непосредственно. Второй — использовать TemporalAccessor.range(TemporalField):
// these two lines are equivalent, but the second approach is recommended temporal = thisField.rangeRefinedBy(temporal); temporal = temporal.range(thisField);Рекомендуется использовать второй подход,
range(TemporalField), так как он намного понятнее в коде. Реализации должны выполнять любые запросы или вычисления, используя поля, доступные в ChronoField. Если поле не поддерживается, должно быть выброшено UnsupportedTemporalTypeException.
- Specified by:
-
rangeRefinedByв интерфейсеTemporalField - Parameters:
-
temporal- временной объект, используемый для уточнения результата, не null - Returns:
- диапазон допустимых значений для этого поля, не null
getFrom
public long getFrom(TemporalAccessor temporal)
TemporalFieldЗапрашивает у временного объекта значение этого поля.
Существуют два эквивалентных способа использования этого метода. Первый — вызвать этот метод непосредственно. Второй — использовать TemporalAccessor.getLong(TemporalField) (или TemporalAccessor.get(TemporalField)):
// these two lines are equivalent, but the second approach is recommended temporal = thisField.getFrom(temporal); temporal = temporal.getLong(thisField);Рекомендуется использовать второй подход,
getLong(TemporalField), так как он намного понятнее в коде. Реализации должны выполнять любые запросы или вычисления, используя поля, доступные в ChronoField. Если поле не поддерживается, должен быть выброшен UnsupportedTemporalTypeException.
- Specified by:
-
getFromв интерфейсеTemporalField - Parameters:
-
temporal- временной объект для запроса, не null - Returns:
- значение этого поля, не null
adjustInto
public <R extends Temporal> R adjustInto(R temporal, long newValue)
TemporalField Возвращает новый временной объект, основанный на указанном, со значением для этого поля, изменённым. Например, на LocalDate, это можно использовать для установки года, месяца или дня месяца. Возвращаемый объект имеет тот же наблюдаемый тип, что и указанный объект.
В некоторых случаях изменение поля не полностью определено. Например, если целевой объект — дата, представляющая 31 января, а затем месяц меняется на февраль, это будет неясно. В таких случаях реализация отвечает за разрешение результата. Обычно она выбирает предыдущую допустимую дату, что в этом примере будет последним допустимым днём февраля.
Существуют два эквивалентных способа использования этого метода. Первый — вызвать этот метод непосредственно. Второй — использовать Temporal.with(TemporalField, long):
// these two lines are equivalent, but the second approach is recommended temporal = thisField.adjustInto(temporal); temporal = temporal.with(thisField);Рекомендуется использовать второй подход,
with(TemporalField), так как он намного понятнее в коде. Реализации должны выполнять любые запросы или вычисления, используя поля, доступные в ChronoField. Если поле не поддерживается, должен быть выброшен UnsupportedTemporalTypeException.
Реализации не должны изменять указанный временной объект. Вместо этого должен быть возвращён скорректированная копия оригинала. Это обеспечивает эквивалентное, безопасное поведение для неизменяемых и изменяемых реализаций.
- Specified by:
-
adjustIntoв интерфейсеTemporalField - Type Parameters:
-
R- тип временного объекта - Parameters:
-
temporal- временной объект для корректировки, не null -
newValue- новое значение поля - Returns:
- скорректированный временной объект, не null
toString
public String toString()
Enum- Specified by:
-
toStringв интерфейсеTemporalField - Overrides:
-
toStringв классеEnum<ChronoField> - Returns:
- имя этой константы перечисления
© 1993, 2021, 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/17/docs/api/java.base/java/time/temporal/ChronoField.html