Класс перечисления 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> |
addTo |
Возвращает копию указанного объекта даты и времени с добавленным указанным периодом. |
long |
between |
Вычисляет промежуток времени между двумя объектами даты и времени. |
Duration |
getDuration() |
Возвращает примерную продолжительность этой единицы в календарной системе ISO. |
boolean |
isDateBased() |
Проверяет, является ли эта единица единицей даты. |
boolean |
isDurationEstimated() |
Проверяет, является ли продолжительность единицы приблизительной. |
boolean |
isTimeBased() |
Проверяет, является ли эта единица единицей времени. |
String |
toString() |
Возвращает имя этой константы перечисления, указанное в объявлении. |
static ChronoUnit |
valueOf |
Возвращает константу перечисления этого класса с указанным именем. |
static ChronoUnit[] |
values() |
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления. |
Методы, объявленные в классе Enum
clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf | Модификатор и тип | Метод | Описание |
|---|---|---|
protected final Object |
clone() |
Выбрасывает CloneNotSupportedException. |
final int |
compareTo |
Сравнивает это перечисление с указанным объектом для определения порядка. |
final Optional |
describeConstable() |
Возвращает дескриптор перечисления EnumDesc для этого экземпляра, если его можно создать, или пустой Optional, если создать его нельзя. |
final boolean |
equals |
Возвращает true, если указанный объект равен этой константе перечисления. |
protected final void |
finalize() |
Устарело, планируется удаление: этот элемент API может быть удален в будущей версии. Финализация помечена как устаревшая и подлежащая удалению. |
final Class |
getDeclaringClass() |
Возвращает объект Class, соответствующий типу перечисления этой константы. |
final int |
hashCode() |
Возвращает хеш-код этой константы перечисления. |
final String |
name() |
Возвращает имя этой константы перечисления в точности в том виде, в каком оно указано в объявлении перечисления. |
final int |
ordinal() |
Возвращает порядковый номер этой константы перечисления (её позицию в объявлении перечисления; первой константе присваивается порядковый номер ноль). |
String |
toString() |
Возвращает имя этой константы перечисления, указанное в объявлении. |
static <T extends Enum<T>> |
valueOf |
Возвращает константу указанного класса перечисления с указанным именем. |
Методы, объявленные в классе 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 |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени. |
Методы, объявленные в интерфейсе TemporalUnit
isSupportedBy | Модификатор и тип | Метод | Описание |
|---|---|---|
default boolean |
isSupportedBy |
Проверяет, поддерживается ли эта единица указанным объектом даты и времени. |
Подробное описание констант перечисления
NANOS
public static final ChronoUnit NANOS
MICROS
public static final ChronoUnit MICROS
MILLIS
public static final ChronoUnit MILLIS
SECONDS
public static final ChronoUnit SECONDS
MINUTES
public static final ChronoUnit MINUTES
HOURS
public static final ChronoUnit HOURS
HALF_DAYS
public static final ChronoUnit HALF_DAYS
DAYS
public static final ChronoUnit DAYS
24 Hours. При использовании с другими календарными системами единица должна соответствовать дню, определяемому восходом и заходом Солнца на Земле. Не требуется, чтобы день начинался в полночь: при преобразовании между календарными системами даты должны совпадать в полдень.
WEEKS
public static final ChronoUnit WEEKS
При использовании с другими календарными системами единица должна соответствовать целому числу дней.
MONTHS
public static final ChronoUnit MONTHS
365.2425 Days. При использовании с другими календарными системами единица должна соответствовать целому числу дней.
YEARS
public static final ChronoUnit YEARS
365.2425 Days. При использовании с другими календарными системами единица должна соответствовать целому числу дней или месяцев, приблизительно равному году, определяемому обращением Земли вокруг Солнца.
DECADES
public static final ChronoUnit DECADES
При использовании с другими календарными системами единица должна соответствовать целому числу дней и обычно целому числу лет.
CENTURIES
public static final ChronoUnit CENTURIES
При использовании с другими календарными системами единица должна соответствовать целому числу дней и обычно целому числу лет.
MILLENNIA
public static final ChronoUnit MILLENNIA
При использовании с другими календарными системами единица должна соответствовать целому числу дней и обычно целому числу лет.
ERAS
public static final ChronoUnit ERAS
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()
Все единицы этого класса имеют приблизительную продолжительность. Продолжительность дней меняется из-за перехода на летнее время, а продолжительность месяцев различается.
- Определено в:
-
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> - Возвращает:
- имя этой константы перечисления
© 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.