Spec-Zone.ru › OpenJDK 17

Enum Class ChronoField

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

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

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

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

Nested Class Summary

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

Enum.EnumDesc<E extends Enum<E>>

Enum Constant Summary

Enum Constant Description
ALIGNED_DAY_OF_WEEK_IN_MONTH
Выровненный день недели в месяце.
ALIGNED_DAY_OF_WEEK_IN_YEAR
Выровненный день недели в году.
ALIGNED_WEEK_OF_MONTH
Выровненная неделя в месяце.
ALIGNED_WEEK_OF_YEAR
Выровненная неделя в году.
AMPM_OF_DAY
Часы до полудня/после полудня.
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>
R
adjustInto(R temporal, long newValue)
Возвращает копию указанного временного объекта со значением этого поля, установленным.
int checkValidIntValue(long value)
Проверяет, что указанное значение является допустимым и подходит для int.
long checkValidValue(long value)
Проверяет, что указанное значение допустимо для этого поля.
TemporalUnit getBaseUnit()
Получает единицу измерения поля.
long getFrom(TemporalAccessor temporal)
Получает значение этого поля из указанного временного объекта.
TemporalUnit getRangeUnit()
Получает диапазон значений поля.
boolean isDateBased()
Проверяет, представляет ли это поле компонент даты.
boolean isSupportedBy(TemporalAccessor temporal)
Проверяет, поддерживает ли временной объект это поле.
boolean isTimeBased()
Проверяет, представляет ли это поле компонент времени.
ValueRange range()
Получает диапазон допустимых значений для поля.
ValueRange rangeRefinedBy(TemporalAccessor temporal)
Получает диапазон допустимых значений для этого поля, используя временной объект для уточнения результата.
String toString()
Возвращает имя этой константы перечисления, как указано в объявлении.
static ChronoField valueOf(String name)
Возвращает константу перечисления этого класса со указанным именем.
static ChronoField[] values()
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления.

Methods declared in class java.lang.Enum

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

Methods declared in class java.lang.Object

getClass, notify, notifyAll, wait, wait, wait

Methods declared in interface java.time.temporal.TemporalField

getDisplayName, resolve

Подробности констант перечисления

NANO_OF_SECOND

public static final ChronoField NANO_OF_SECOND
Наносекунда.

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

Это поле используется для представления наносекунды, обрабатывая любые доли секунды. Реализации TemporalAccessor должны предоставлять значение для этого поля, если они могут вернуть значение для SECOND_OF_MINUTE, SECOND_OF_DAY или INSTANT_SECONDS, заполняя неизвестную точность нулями.

При использовании этого поля для установки значения, оно должно установить столько точности, сколько хранит объект, используя целочисленное деление для удаления избыточной точности. Например, если TemporalAccessor хранит время с точностью до миллисекунды, то наносекунда должна быть разделена на 1 000 000 перед заменой миллисекунды.

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

NANO_OF_DAY

public static final ChronoField NANO_OF_DAY
Наносекунда дня.

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

Это поле используется для представления наносекунды дня, обрабатывая любые доли секунды. Реализации TemporalAccessor должны предоставлять значение для этого поля, если они могут вернуть значение для SECOND_OF_DAY, заполняя неизвестную точность нулями.

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

MICRO_OF_SECOND

public static final ChronoField MICRO_OF_SECOND
Микросекунда.

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

Это поле используется для представления микросекунды, обрабатывая любые доли секунды. Реализации TemporalAccessor должны предоставлять значение для этого поля, если они могут вернуть значение для SECOND_OF_MINUTE, SECOND_OF_DAY или INSTANT_SECONDS, заполняя неизвестную точность нулями.

При использовании этого поля для установки значения, оно должно действовать аналогично установке NANO_OF_SECOND со значением, умноженным на 1000.

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

MICRO_OF_DAY

public static final ChronoField MICRO_OF_DAY
Микросекунда дня.

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

Это поле используется для представления микросекунды дня, обрабатывая любые доли секунды. Реализации TemporalAccessor должны предоставлять значение для этого поля, если они могут вернуть значение для SECOND_OF_DAY, заполняя неизвестную точность нулями.

При использовании этого поля для установки значения, оно должно действовать аналогично установке NANO_OF_DAY со значением, умноженным на 1000.

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

MILLI_OF_SECOND

public static final ChronoField MILLI_OF_SECOND
Миллисекунда.

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

Это поле используется для представления миллисекунды, обрабатывая любые доли секунды. Реализации TemporalAccessor должны предоставлять значение для этого поля, если они могут вернуть значение для SECOND_OF_MINUTE, SECOND_OF_DAY или INSTANT_SECONDS, заполняя неизвестную точность нулями.

При использовании этого поля для установки значения, оно должно действовать аналогично установке NANO_OF_SECOND со значением, умноженным на 1 000 000.

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

MILLI_OF_DAY

public static final ChronoField MILLI_OF_DAY
Миллисекунда дня.

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

Это поле используется для представления миллисекунды дня, обрабатывая любые доли секунды. Реализации TemporalAccessor должны предоставлять значение для этого поля, если они могут вернуть значение для SECOND_OF_DAY, заполняя неизвестную точность нулями.

При использовании этого поля для установки значения, оно должно действовать аналогично установке NANO_OF_DAY со значением, умноженным на 1 000 000.

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

Вторая минуты

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

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

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

Секунда дня

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

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

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

Минута часа

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

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

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

Минута дня

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

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

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

Час AM/PM

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

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

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

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

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

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

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

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

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

Час суток

public static final ChronoField HOUR_OF_DAY
Час суток.

Указывает час в течение дня, от 0 до 23. Это час, который отображается на стандартных 24-часовых цифровых часах. Это поле имеет одинаковый смысл для всех систем календаря.

При разборе этого поля поведение эквивалентно следующему: значение проверяется в строгом и умном режиме, но не в мягком режиме. Поле объединяется с MINUTE_OF_HOUR, SECOND_OF_MINUTE и NANO_OF_SECOND для получения LocalTime. В мягком режиме любые дополнительные дни добавляются к разобранной дате или делаются доступными через DateTimeFormatter.parsedExcessDays().

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

ЧАС_СУТОК

public static final ChronoField CLOCK_HOUR_OF_DAY
Час суток.

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

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

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

AMPM_СУТОК

public static final ChronoField AMPM_OF_DAY
AM/PM в течение суток.

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

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

ДЕНЬ_НЕДЕЛИ

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

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

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

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

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

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

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

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

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

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

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

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

Например, в календарных системах с семидневной неделей первая выровненная неделя года начинается с 1 дня года, вторая выровненная неделя начинается с 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
Эпоха дня, основанная на эпохе Java 1970-01-01 (ISO).

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

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

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

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

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

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

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

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

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

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

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

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

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

МЕСЯЦ_ГОДА

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

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

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

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

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

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

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

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

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
Пролептический год, например, 2012.

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

Стандартная модель представления даты основана на трёх понятиях - год, месяц и день. Они соответствуют полям YEAR, MONTH_OF_YEAR и DAY_OF_MONTH. Обратите внимание, что нет ссылок на эры. Полная модель даты требует четырёх понятий - эра, год, месяц и день. Они соответствуют полям ERA, YEAR_OF_ERA, MONTH_OF_YEAR и DAY_OF_MONTH. Использование этого поля или поля YEAR_OF_ERA зависит от используемой модели. Более подробно об этом см. в ChronoLocalDate.

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

ERA

public static final ChronoField ERA
Эра.

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

В стандартной системе календарей ISO определены две эры, '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/Гринвича.

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

Spec-Zone.ru

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