Enum Class ChronoUnit
- All Implemented Interfaces:
-
Serializable,Comparable<ChronoUnit>,Constable,TemporalUnit
public enum ChronoUnit extends Enum<ChronoUnit> implements TemporalUnit
This set of units provide unit-based access to manipulate a date, time or date-time. The standard set of units can be extended by implementing TemporalUnit.
These units are intended to be applicable in multiple calendar systems. For example, most non-ISO calendar systems define units of years, months and days, just with slightly different rules. The documentation of each unit explains how it operates.
- Implementation Requirements:
- This is a final, immutable and thread-safe enum.
- 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 |
|---|---|
CENTURIES |
Unit that represents the concept of a century. |
DAYS |
Unit that represents the concept of a day. |
DECADES |
Unit that represents the concept of a decade. |
ERAS |
Unit that represents the concept of an era. |
FOREVER |
Artificial unit that represents the concept of forever. |
HALF_DAYS |
Unit that represents the concept of half a day, as used in AM/PM. |
HOURS |
Unit that represents the concept of an hour. |
MICROS |
Unit that represents the concept of a microsecond. |
MILLENNIA |
Unit that represents the concept of a millennium. |
MILLIS |
Unit that represents the concept of a millisecond. |
MINUTES |
Unit that represents the concept of a minute. |
MONTHS |
Unit that represents the concept of a month. |
NANOS |
Unit that represents the concept of a nanosecond, the smallest supported unit of time. |
SECONDS |
Unit that represents the concept of a second. |
WEEKS |
Unit that represents the concept of a week. |
YEARS |
Unit that represents the concept of a year. |
Method Summary
| Modifier and Type | Method | Description |
|---|---|---|
<R extends Temporal> |
addTo |
Returns a copy of the specified temporal object with the specified period added. |
long |
between |
Calculates the amount of time between two temporal objects. |
Duration |
getDuration() |
Gets the estimated duration of this unit in the ISO calendar system. |
boolean |
isDateBased() |
Checks if this unit is a date unit. |
boolean |
isDurationEstimated() |
Checks if the duration of the unit is an estimate. |
boolean |
isTimeBased() |
Checks if this unit is a time unit. |
String |
toString() |
Returns the name of this enum constant, as contained in the declaration. |
static ChronoUnit |
valueOf |
Returns the enum constant of this class with the specified name. |
static ChronoUnit[] |
values() |
Returns an array containing the constants of this enum class, in the order they are declared. |
Methods declared in class java.lang.Enum
clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
Methods declared in interface java.time.temporal.TemporalUnit
isSupportedBy
Подробности констант перечисления
НАНОСЕКУНДЫ
public static final ChronoUnit NANOS
МИКРОСЕКУНДЫ
public static final ChronoUnit MICROS
МИЛЛИСЕКУНДЫ
public static final ChronoUnit MILLIS
СЕКУНДЫ
public static final ChronoUnit SECONDS
МИНУТЫ
public static final ChronoUnit MINUTES
ЧАСЫ
public static final ChronoUnit HOURS
ПОЛУСУТОК
public static final ChronoUnit HALF_DAYS
ДНИ
public static final ChronoUnit DAYS
24 Hours. При использовании с другими календарными системами она должна соответствовать дню, определённому восходом и заходом Солнца на Земле. Не требуется, чтобы дни начинались с полуночи — при преобразовании между календарными системами дата должна быть эквивалентной в полдень.
НЕДЕЛИ
public static final ChronoUnit WEEKS
При использовании с другими календарными системами она должна соответствовать целому числу дней.
МЕСЯЦЫ
public static final ChronoUnit MONTHS
365.2425 Days. При использовании с другими календарными системами она должна соответствовать целому числу дней.
ГОДЫ
public static final ChronoUnit YEARS
365.2425 Days. При использовании с другими календарными системами она должна соответствовать целому числу дней или месяцев, приблизительно равных году, определённому движением Земли вокруг Солнца.
ДЕСЯТИЛЕТИЯ
public static final ChronoUnit DECADES
При использовании с другими календарными системами она должна соответствовать целому числу дней и обычно целому числу лет.
ВЕКА
public static final ChronoUnit CENTURIES
При использовании с другими календарными системами она должна соответствовать целому числу дней и обычно целому числу лет.
ТЫСЯЧЕЛЕТИЯ
public static final ChronoUnit MILLENNIA
При использовании с другими календарными системами она должна соответствовать целому числу дней и обычно целому числу лет.
ЭРЫ
public static final ChronoUnit ERAS
1,000,000,000 Years. При использовании с другими календарными системами нет ограничений на единицу.
ВСЕГДА
public static final ChronoUnit FOREVER
TemporalField для представления неограниченных полей, таких как год или эра. Приблизительная продолжительность этой единицы искусственно определена как наибольшая продолжительность, поддерживаемая Duration.Подробности методов
values
public static ChronoUnit[] values()
- Returns:
- массив, содержащий константы этого класса перечислений в порядке их объявления
valueOf
public static ChronoUnit valueOf(String name)
- Parameters:
-
name- имя константы перечисления, которое нужно вернуть. - Returns:
- константа перечисления с заданным именем
- Throws:
-
IllegalArgumentException- если в этом классе перечислений нет константы с заданным именем -
NullPointerException- если аргумент равен null
getDuration
public Duration getDuration()
Все единицы в этом классе имеют приблизительную продолжительность. Дни изменяются из-за перехода на летнее время, а месяцы имеют разную продолжительность.
- Specified by:
-
getDurationв интерфейсеTemporalUnit - Returns:
- приблизительная продолжительность этой единицы, не null
isDurationEstimated
public boolean isDurationEstimated()
Все единицы времени в этом классе считаются точными, а все единицы дат в этом классе — приблизительными.
Это определение игнорирует високосные секунды, но учитывает, что дни изменяются из-за перехода на летнее время, а месяцы имеют разную продолжительность.
- Specified by:
-
isDurationEstimatedв интерфейсеTemporalUnit - Returns:
- true, если продолжительность приблизительная, false, если точная
isDateBased
public boolean isDateBased()
Все единицы от дней до эр включительно относятся к единицам дат. Единицы времени и FOREVER возвращают false.
- Specified by:
-
isDateBasedв интерфейсеTemporalUnit - Returns:
- true, если единица даты, false, если единица времени
isTimeBased
public boolean isTimeBased()
Все единицы от наносекунд до полусуток включительно относятся к единицам времени. Единицы дат и FOREVER возвращают false.
- Specified by:
-
isTimeBasedв интерфейсеTemporalUnit - Returns:
- 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.
Реализации не должны изменять указанный временной объект. Вместо этого должен быть возвращен скорректированный экземпляр оригинала. Это обеспечивает эквивалентное, безопасное поведение для неизменяемых и изменяемых реализаций.
- Specified by:
-
addToв интерфейсеTemporalUnit - Type Parameters:
-
R- тип временного объекта - Parameters:
-
temporal- временной объект для корректировки, не null -
amount- количество этой единицы для добавления, положительное или отрицательное - Returns:
- скорректированный временной объект, не 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, 2023, 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/21/docs/api/java.base/java/time/temporal/ChronoUnit.html