Перечисление 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> |
addTo |
Возвращает копию указанного временного объекта с добавленным указанным периодом. |
long |
between |
Вычисляет количество времени между двумя временными объектами. |
Duration |
getDuration() |
Получает оценочную продолжительность этой единицы в системе календаря ISO. |
boolean |
isDateBased() |
Проверяет, является ли эта единица единицей даты. |
boolean |
isDurationEstimated() |
Проверяет, является ли продолжительность единицы оценкой. |
boolean |
isTimeBased() |
Проверяет, является ли эта единица единицей времени. |
String |
toString() |
Возвращает имя этой константы перечисления, как указано в объявлении. |
static ChronoUnit |
valueOf |
Возвращает константу перечисления этого класса с указанным именем. |
static ChronoUnit[] |
values() |
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления. |
Методы, объявленные в классе java.lang.Enum
clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
Методы, объявленные в интерфейсе java.time.temporal.TemporalUnit
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.Подробности методов
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); 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