Spec-Zone.ru › OpenJDK 24

Перечисление 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

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

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

Enum.EnumDesc<E extends Enum<E>>

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

Константа перечисления Описание
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()
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления.

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

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

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

getClass, notify, notifyAll, wait, wait, wait

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

isSupportedBy

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

NANOS

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

MICROS

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

MILLIS

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

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.

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

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);
   temporal = temporal.plus(thisUnit);
 
Рекомендуется использовать второй подход, plus(TemporalUnit), так как он намного понятнее в коде.

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

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

Указано:
addTo в интерфейсе TemporalUnit
Параметры типа:
R - тип временного объекта
Параметры:
temporal - временной объект для корректировки, не null
amount - количество этой единицы измерения для добавления, положительное или отрицательное
Возвращает:
скорректированный временной объект, не null

between

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

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

Вычисление возвращает целое число, представляющее количество полных единиц между двумя временными моментами. Например, количество часов между 11:30 и 13:29 будет только одному часу, так как это на одну минуту меньше двух часов.

Существует два эквивалентных способа использования этого метода. Первый — вызвать этот метод напрямую. Второй — использовать 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>
Возвращает:
имя этой константы перечисления

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/time/temporal/ChronoUnit.html

Spec-Zone.ru

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