Spec-Zone.ru › OpenJDK 21

Enum Class ChronoUnit

java.lang.Object
java.lang.Enum<ChronoUnit>
java.time.temporal.ChronoUnit
All Implemented Interfaces:
Serializable, Comparable<ChronoUnit>, Constable, TemporalUnit
public enum ChronoUnit extends Enum<ChronoUnit> implements TemporalUnit
A standard set of date periods units.

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>
R
addTo(R temporal, long amount)
Returns a copy of the specified temporal object with the specified period added.
long between(Temporal temporal1Inclusive, Temporal temporal2Exclusive)
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(String name)
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 class java.lang.Object

getClass, notify, notifyAll, wait, wait, wait

Methods declared in interface java.time.temporal.TemporalUnit

isSupportedBy

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

НАНОСЕКУНДЫ

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

МИКРОСЕКУНДЫ

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

МИЛЛИСЕКУНДЫ

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

СЕКУНДЫ

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

МИНУТЫ

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

ЧАСЫ

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

ПОЛУСУТОК

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

ДНИ

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

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

НЕДЕЛИ

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

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

МЕСЯЦЫ

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

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

ГОДЫ

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

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

ДЕСЯТИЛЕТИЯ

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

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

ВЕКА

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

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

ТЫСЯЧЕЛЕТИЯ

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

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

ЭРЫ

public static final ChronoUnit ERAS
Единица, представляющая понятие эры. ISO-календарная система не имеет эр, поэтому добавление эры к дате или дате-времени невозможно. Приблизительная продолжительность эры искусственно определена как 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()
Получает приблизительную продолжительность этой единицы в ISO-календарной системе.

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

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

Spec-Zone.ru

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