Spec-Zone.ru › OpenJDK 27

Класс перечисления ChronoUnit

java.lang.Object
java.lang.Enum<ChronoUnit>
java.time.temporal.ChronoUnit
Все реализуемые интерфейсы:
Serializable, Comparable<ChronoUnit>, Constable, TemporalUnit
public enum ChronoUnit extends Enum<ChronoUnit> implements TemporalUnit
Стандартный набор единиц периодов даты.

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

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

Требования к реализации:
Это окончательное, неизменяемое и потокобезопасное перечисление.
С версии:
1.8

Краткое описание вложенных классов

Вложенные классы и интерфейсы, объявленные в классе Enum

Enum.EnumDesc<E>
Модификатор и тип Класс Описание
static final class  Enum.EnumDesc<E extends Enum<E>>
номинальный дескриптор константы enum.

Краткое описание констант перечисления

Константа перечисления Описание
CENTURIES
Единица, представляющая понятие столетия.
DAYS
Единица, представляющая понятие дня.
DECADES
Единица, представляющая понятие десятилетия.
ERAS
Единица, представляющая понятие эры.
FOREVER
Искусственная единица, представляющая понятие вечности.
HALF_DAYS
Единица, представляющая понятие половины дня, используемое в обозначениях AM/PM.
HOURS
Единица, представляющая понятие часа.
MICROS
Единица, представляющая понятие микросекунды.
MILLENNIA
Единица, представляющая понятие тысячелетия.
MILLIS
Единица, представляющая понятие миллисекунды.
MINUTES
Единица, представляющая понятие минуты.
MONTHS
Единица, представляющая понятие месяца.
NANOS
Единица, представляющая понятие наносекунды — наименьшей поддерживаемой единицы времени.
SECONDS
Единица, представляющая понятие секунды.
WEEKS
Единица, представляющая понятие недели.
YEARS
Единица, представляющая понятие года.

Краткое описание методов

Модификатор и тип Метод Описание
<R extends Temporal>
R
addTo(R temporal, long amount)
Возвращает копию указанного объекта даты и времени с добавленным указанным периодом.
long between(Temporal temporal1Inclusive, Temporal temporal2Exclusive)
Вычисляет промежуток времени между двумя объектами даты и времени.
Duration getDuration()
Возвращает примерную продолжительность этой единицы в календарной системе ISO.
boolean isDateBased()
Проверяет, является ли эта единица единицей даты.
boolean isDurationEstimated()
Проверяет, является ли продолжительность единицы приблизительной.
boolean isTimeBased()
Проверяет, является ли эта единица единицей времени.
String toString()
Возвращает имя этой константы перечисления, указанное в объявлении.
static ChronoUnit valueOf(String name)
Возвращает константу перечисления этого класса с указанным именем.
static ChronoUnit[] values()
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления.

Методы, объявленные в классе Enum

clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
Модификатор и тип Метод Описание
protected final Object clone()
Выбрасывает CloneNotSupportedException.
final int compareTo(ChronoUnit o)
Сравнивает это перечисление с указанным объектом для определения порядка.
final Optional<Enum.EnumDesc<ChronoUnit>> describeConstable()
Возвращает дескриптор перечисления EnumDesc для этого экземпляра, если его можно создать, или пустой Optional, если создать его нельзя.
final boolean equals(Object other)
Возвращает true, если указанный объект равен этой константе перечисления.
protected final void finalize()
Устарело, планируется удаление: этот элемент API может быть удален в будущей версии.
Финализация помечена как устаревшая и подлежащая удалению.
final Class<ChronoUnit> getDeclaringClass()
Возвращает объект Class, соответствующий типу перечисления этой константы.
final int hashCode()
Возвращает хеш-код этой константы перечисления.
final String name()
Возвращает имя этой константы перечисления в точности в том виде, в каком оно указано в объявлении перечисления.
final int ordinal()
Возвращает порядковый номер этой константы перечисления (её позицию в объявлении перечисления; первой константе присваивается порядковый номер ноль).
String toString()
Возвращает имя этой константы перечисления, указанное в объявлении.
static <T extends Enum<T>>
T
valueOf(Class<T> enumClass, String name)
Возвращает константу указанного класса перечисления с указанным именем.

Методы, объявленные в классе Object

getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени.

Методы, объявленные в интерфейсе TemporalUnit

isSupportedBy
Модификатор и тип Метод Описание
default boolean isSupportedBy(Temporal temporal)
Проверяет, поддерживается ли эта единица указанным объектом даты и времени.

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

NANOS

public static final ChronoUnit NANOS
Единица, представляющая понятие наносекунды — наименьшей поддерживаемой единицы времени. В календарной системе ISO она равна одной миллиардной части секунды.

MICROS

public static final ChronoUnit MICROS
Единица, представляющая понятие микросекунды. В календарной системе ISO она равна одной миллионной части секунды.

MILLIS

public static final ChronoUnit MILLIS
Единица, представляющая понятие миллисекунды. В календарной системе ISO она равна одной тысячной части секунды.

SECONDS

public static final ChronoUnit SECONDS
Единица, представляющая понятие секунды. В календарной системе ISO она равна секунде в системе единиц СИ, за исключением моментов, связанных с високосной секундой.

MINUTES

public static final ChronoUnit MINUTES
Единица, представляющая понятие минуты. В календарной системе ISO она равна 60 секундам.

HOURS

public static final ChronoUnit HOURS
Единица, представляющая понятие часа. В календарной системе ISO она равна 60 минутам.

HALF_DAYS

public static final ChronoUnit HALF_DAYS
Единица, представляющая понятие половины дня, используемое в обозначениях AM/PM. В календарной системе ISO она равна 12 часам.

DAYS

public static final ChronoUnit DAYS
Единица, представляющая понятие дня. В календарной системе ISO это стандартный день от полуночи до полуночи. Примерная продолжительность дня составляет 24 Hours.

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

WEEKS

public static final ChronoUnit WEEKS
Единица, представляющая понятие недели. В календарной системе ISO она равна 7 дням.

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

MONTHS

public static final ChronoUnit MONTHS
Единица, представляющая понятие месяца. В календарной системе ISO продолжительность месяца зависит от месяца года. Примерная продолжительность месяца составляет одну двенадцатую от 365.2425 Days.

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

YEARS

public static final ChronoUnit YEARS
Единица, представляющая понятие года. В календарной системе ISO она равна 12 месяцам. Примерная продолжительность года составляет 365.2425 Days.

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

DECADES

public static final ChronoUnit DECADES
Единица, представляющая понятие десятилетия. В календарной системе ISO она равна 10 годам.

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

CENTURIES

public static final ChronoUnit CENTURIES
Единица, представляющая понятие столетия. В календарной системе ISO она равна 100 годам.

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

MILLENNIA

public static final ChronoUnit MILLENNIA
Единица, представляющая понятие тысячелетия. В календарной системе ISO она равна 1000 годам.

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

ERAS

public static final ChronoUnit ERAS
Единица, представляющая понятие эры. В календарной системе ISO нет эр, поэтому добавить эру к дате или дате и времени невозможно. Примерная продолжительность эры искусственно определена как 1,000,000,000 Years.

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

FOREVER

public static final ChronoUnit FOREVER
Искусственная единица, представляющая понятие вечности. Она используется главным образом с TemporalField для представления неограниченных полей, таких как год или эра. Примерная продолжительность этой единицы искусственно определена как Duration.MAX.

Подробное описание методов

values

public static ChronoUnit[] values()
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления.
Возвращает:
массив, содержащий константы этого класса перечисления в порядке их объявления

valueOf

public static ChronoUnit valueOf(String name)
Возвращает константу перечисления этого класса с указанным именем. Строка должна точно совпадать с идентификатором, использованным для объявления константы перечисления в этом классе. (Лишние пробельные символы не допускаются.)
Параметры:
name — имя возвращаемой константы перечисления.
Возвращает:
константу перечисления с указанным именем
Выбрасывает:
IllegalArgumentException — если в этом классе перечисления нет константы с указанным именем
NullPointerException — если аргумент равен null

getDuration

public Duration getDuration()
Возвращает примерную продолжительность этой единицы в календарной системе ISO.

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

Определено в:
getDuration в интерфейсе TemporalUnit
Возвращает:
примерную продолжительность этой единицы, не null

isDurationEstimated

public boolean isDurationEstimated()
Проверяет, является ли продолжительность единицы приблизительной.

Все единицы времени в этом классе считаются точными, а все единицы даты — приблизительными.

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

Определено в:
isDurationEstimated в интерфейсе TemporalUnit
Возвращает:
true, если продолжительность приблизительная, false, если точная

isDateBased

public boolean isDateBased()
Проверяет, является ли эта единица единицей даты.

Все единицы от дней до эр включительно относятся к единицам даты. Единицы времени и FOREVER возвращают false.

Определено в:
isDateBased в интерфейсе TemporalUnit
Возвращает:
true, если это единица даты, false, если единица времени

isTimeBased

public boolean isTimeBased()
Проверяет, является ли эта единица единицей времени.

Все единицы от наносекунд до половины дня включительно относятся к единицам времени. Единицы даты и FOREVER возвращают false.

Определено в:
isTimeBased в интерфейсе TemporalUnit
Возвращает:
true, если это единица времени, false, если единица даты

addTo

public <R extends Temporal> R addTo(R temporal, long amount)
Описание скопировано из интерфейса: TemporalUnit
Возвращает копию указанного объекта даты и времени с добавленным указанным периодом.

Добавляемый период кратен этой единице. Например, этот метод можно использовать для добавления «3 дней» к дате, вызвав его для экземпляра, представляющего «дни», и передав дату и период «3». Добавляемый период может быть отрицательным, что эквивалентно вычитанию.

Этот метод можно использовать двумя эквивалентными способами. Первый — вызвать его напрямую. Второй — использовать Temporal.plus(long, TemporalUnit):

  // these two lines are equivalent, but the second approach is recommended
  temporal = thisUnit.addTo(temporal, amount);
  temporal = temporal.plus(amount, thisUnit);
Рекомендуется использовать второй подход, plus(amount, thisUnit), поскольку его гораздо легче читать в коде.

Реализации должны выполнять запросы и вычисления, используя единицы, доступные в ChronoUnit, или поля, доступные в ChronoField. Если единица не поддерживается, должно быть выброшено исключение UnsupportedTemporalTypeException.

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

Определено в:
addTo в интерфейсе TemporalUnit
Параметры типа:
R — тип объекта Temporal
Параметры:
temporal — объект даты и времени, который нужно скорректировать; не null
amount — количество единиц, которое нужно добавить; положительное или отрицательное
Возвращает:
скорректированный объект даты и времени, не null

between

public long between(Temporal temporal1Inclusive, Temporal temporal2Exclusive)
Описание скопировано из интерфейса: TemporalUnit
Вычисляет промежуток времени между двумя объектами даты и времени.

Промежуток вычисляется в единицах этого типа. Начальная и конечная точки задаются объектами даты и времени и должны иметь совместимые типы. Перед вычислением реализация преобразует второй тип в экземпляр первого типа. Результат будет отрицательным, если конечная точка предшествует начальной. Например, промежуток в часах между двумя объектами даты и времени можно вычислить с помощью HOURS.between(startTime, endTime).

Результат вычисления — целое число, представляющее количество полных единиц между двумя объектами даты и времени. При определении итогового целого числа учитываются значения полей меньших единиц. Например, промежуток в часах между моментами 11:30 и 13:29 составляет всего один час, поскольку до двух часов не хватает одной минуты; промежуток в месяцах между датами 2024-09-29 и 2025-02-28 (последним днем февраля) составляет 4 месяца, поскольку до пяти месяцев не хватает одного дня.

Этот метод можно использовать двумя эквивалентными способами. Первый — вызвать его напрямую. Второй — использовать Temporal.until(Temporal, TemporalUnit):

  // these two lines are equivalent
  between = thisUnit.between(start, end);
  between = start.until(end, thisUnit);
Выбор следует делать исходя из того, какой вариант делает код более понятным.

Например, этот метод позволяет вычислить количество дней между двумя датами:

 long daysBetween = DAYS.between(start, end);
 // or alternatively
 long daysBetween = start.until(end, DAYS);

Реализации должны выполнять запросы и вычисления, используя единицы, доступные в ChronoUnit, или поля, доступные в ChronoField. Если единица не поддерживается, должно быть выброшено исключение UnsupportedTemporalTypeException. Реализации не должны изменять указанные объекты даты и времени.

Определено в:
between в интерфейсе TemporalUnit
Параметры:
temporal1Inclusive — базовый объект даты и времени, не null
temporal2Exclusive — другой объект даты и времени, не включая конечную точку; не null
Возвращает:
промежуток времени между temporal1Inclusive и temporal2Exclusive в единицах этого типа; положительное значение, если temporal2Exclusive позже temporal1Inclusive, отрицательное — если раньше

toString

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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