Spec-Zone.ru › OpenJDK 27

Класс перечисления TimeUnit

java.lang.Object
java.lang.Enum<TimeUnit>
java.util.concurrent.TimeUnit
Все реализуемые интерфейсы:
Serializable, Comparable<TimeUnit>, Constable
public enum TimeUnit extends Enum<TimeUnit>
TimeUnit представляет длительности времени с заданной единицей точности и предоставляет вспомогательные методы для преобразования между единицами, а также для выполнения операций измерения времени и ожидания в этих единицах. TimeUnit не хранит информацию о времени, а лишь помогает организовывать и использовать представления времени, которые могут храниться отдельно в различных контекстах. Наносекунда определяется как одна тысячная микросекунды, микросекунда — как одна тысячная миллисекунды, миллисекунда — как одна тысячная секунды, минута — как шестьдесят секунд, час — как шестьдесят минут, а сутки — как двадцать четыре часа.

TimeUnit в основном используется для указания методам, зависящим от времени, того, как следует интерпретировать заданный параметр времени. Например, следующий код завершится по таймауту через 50 миллисекунд, если lock недоступен:

Lock lock = ...;
if (lock.tryLock(50L, TimeUnit.MILLISECONDS)) ...
а этот код завершится по таймауту через 50 секунд:
Lock lock = ...;
if (lock.tryLock(50L, TimeUnit.SECONDS)) ...
Однако следует учитывать, что нет гарантии, что конкретная реализация таймаута сможет отслеживать течение времени с той же точностью, что и заданный TimeUnit.
С версии:
1.5

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

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

Enum.EnumDesc<E>
Модификатор и тип Класс Описание
static final class  Enum.EnumDesc<E extends Enum<E>>
enum — это номинальный дескриптор.

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

Константа перечисления Описание
DAYS
Единица времени, равная двадцати четырём часам.
HOURS
Единица времени, равная шестидесяти минутам.
MICROSECONDS
Единица времени, равная одной тысячной миллисекунды.
MILLISECONDS
Единица времени, равная одной тысячной секунды.
MINUTES
Единица времени, равная шестидесяти секундам.
NANOSECONDS
Единица времени, равная одной тысячной микросекунды.
SECONDS
Единица времени, равная одной секунде.

Краткое описание методов

Модификатор и тип Метод Описание
long convert(long sourceDuration, TimeUnit sourceUnit)
Преобразует заданную длительность времени из указанной единицы в эту единицу.
long convert(Duration duration)
Преобразует заданную длительность времени в эту единицу.
static TimeUnit of(ChronoUnit chronoUnit)
Преобразует ChronoUnit в эквивалентный TimeUnit.
void sleep(long timeout)
Выполняет Thread.sleep с использованием этой единицы времени.
void timedJoin(Thread thread, long timeout)
Выполняет Thread.join с таймаутом и использованием этой единицы времени.
void timedWait(Object obj, long timeout)
Выполняет Object.wait с таймаутом и использованием этой единицы времени.
ChronoUnit toChronoUnit()
Преобразует эту TimeUnit в эквивалентную ChronoUnit.
long toDays(long duration)
Эквивалентно DAYS.convert(duration, this).
long toHours(long duration)
Эквивалентно HOURS.convert(duration, this).
long toMicros(long duration)
Эквивалентно MICROSECONDS.convert(duration, this).
long toMillis(long duration)
Эквивалентно MILLISECONDS.convert(duration, this).
long toMinutes(long duration)
Эквивалентно MINUTES.convert(duration, this).
long toNanos(long duration)
Эквивалентно NANOSECONDS.convert(duration, this).
long toSeconds(long duration)
Эквивалентно SECONDS.convert(duration, this).
static TimeUnit valueOf(String name)
Возвращает константу перечисления этого класса с указанным именем.
static TimeUnit[] values()
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления.

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

clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
Модификатор и тип Метод Описание
protected final Object clone()
Выбрасывает CloneNotSupportedException.
final int compareTo(TimeUnit o)
Сравнивает это перечисление с указанным объектом, определяя порядок.
final Optional<Enum.EnumDesc<TimeUnit>> describeConstable()
Возвращает дескриптор перечисления EnumDesc для этого экземпляра, если его можно создать, или пустой Optional, если создать его нельзя.
final boolean equals(Object other)
Возвращает true, если указанный объект равен этой константе перечисления.
protected final void finalize()
Устарело, подлежит удалению: этот элемент API может быть удалён в будущей версии.
Метод завершения помечен как устаревший и подлежит удалению.
final Class<TimeUnit> getDeclaringClass()
Возвращает объект Class, соответствующий типу перечисления этой константы.
final int hashCode()
Возвращает хеш-код этой константы перечисления.
final String name()
Возвращает имя этой константы перечисления в точности так, как оно объявлено в объявлении перечисления.
final int ordinal()
Возвращает порядковый номер этой константы перечисления (её позицию в объявлении перечисления, где первой константе присваивается номер 0).
String toString()
Возвращает имя этой константы перечисления, указанное в объявлении.
static <T extends Enum<T>>
T
valueOf(Class<T> enumClass, String name)
Возвращает константу указанного класса перечисления с указанным именем.

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

getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо истечения заданного периода реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо истечения заданного периода реального времени.

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

NANOSECONDS

public static final TimeUnit NANOSECONDS
Единица времени, равная одной тысячной микросекунды.

MICROSECONDS

public static final TimeUnit MICROSECONDS
Единица времени, равная одной тысячной миллисекунды.

MILLISECONDS

public static final TimeUnit MILLISECONDS
Единица времени, равная одной тысячной секунды.

SECONDS

public static final TimeUnit SECONDS
Единица времени, равная одной секунде.

MINUTES

public static final TimeUnit MINUTES
Единица времени, равная шестидесяти секундам.
С версии:
1.6

HOURS

public static final TimeUnit HOURS
Единица времени, равная шестидесяти минутам.
С версии:
1.6

DAYS

public static final TimeUnit DAYS
Единица времени, равная двадцати четырём часам.
С версии:
1.6

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

values

public static TimeUnit[] values()
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления.
Возвращает:
массив, содержащий константы этого класса перечисления в порядке их объявления

valueOf

public static TimeUnit valueOf(String name)
Возвращает константу перечисления этого класса с указанным именем. Строка должна точно совпадать с идентификатором, использованным для объявления константы перечисления в этом классе. (Пробелы в начале и конце строки не допускаются.)
Параметры:
name — имя возвращаемой константы перечисления.
Возвращает:
константа перечисления с указанным именем
Выбрасывает:
IllegalArgumentException — если в этом классе перечисления нет константы с указанным именем
NullPointerException — если аргумент равен null

convert

public long convert(long sourceDuration, TimeUnit sourceUnit)
Преобразует заданную длительность времени из указанной единицы в эту единицу. При преобразовании из более точных единиц в менее точные дробная часть отбрасывается, что приводит к потере точности. Например, преобразование 999 миллисекунд в секунды даёт 0. При преобразовании из менее точных единиц в более точные, если числовое значение аргумента может вызвать переполнение, результат ограничивается значением Long.MIN_VALUE при отрицательном переполнении или Long.MAX_VALUE при положительном.

Например, чтобы преобразовать 10 минут в миллисекунды, используйте: TimeUnit.MILLISECONDS.convert(10L, TimeUnit.MINUTES)

Параметры:
sourceDuration — длительность времени в указанной sourceUnit
sourceUnit — единица измерения аргумента sourceDuration
Возвращает:
преобразованную длительность в этой единице или Long.MIN_VALUE при отрицательном переполнении во время преобразования либо Long.MAX_VALUE при положительном переполнении.

convert

public long convert(Duration duration)
Преобразует заданную длительность времени в эту единицу.

Для любой единицы TimeUnit unit, unit.convert(Duration.ofNanos(n)) эквивалентно unit.convert(n, NANOSECONDS), а unit.convert(Duration.of(n, unit.toChronoUnit())) эквивалентно n (при отсутствии переполнения).

Примечание API:
Этот метод отличается от Duration.toNanos() тем, что при числовом переполнении не выбрасывает ArithmeticException.
Параметры:
duration — длительность времени
Возвращает:
преобразованную длительность в этой единице или Long.MIN_VALUE при отрицательном переполнении во время преобразования либо Long.MAX_VALUE при положительном переполнении.
Выбрасывает:
NullPointerException — если duration равно null
С версии:
11
См. также:
  • Duration.of(long,TemporalUnit)

toNanos

public long toNanos(long duration)
Эквивалентно NANOSECONDS.convert(duration, this).
Параметры:
duration — длительность
Возвращает:
преобразованную длительность или Long.MIN_VALUE при отрицательном переполнении во время преобразования либо Long.MAX_VALUE при положительном переполнении.

toMicros

public long toMicros(long duration)
Эквивалентно MICROSECONDS.convert(duration, this).
Параметры:
duration — длительность
Возвращает:
преобразованную длительность или Long.MIN_VALUE при отрицательном переполнении во время преобразования либо Long.MAX_VALUE при положительном переполнении.

toMillis

public long toMillis(long duration)
Эквивалентно MILLISECONDS.convert(duration, this).
Параметры:
duration — длительность
Возвращает:
преобразованную длительность или Long.MIN_VALUE при отрицательном переполнении во время преобразования либо Long.MAX_VALUE при положительном переполнении.

toSeconds

public long toSeconds(long duration)
Эквивалентно SECONDS.convert(duration, this).
Параметры:
duration — длительность
Возвращает:
преобразованную длительность или Long.MIN_VALUE при отрицательном переполнении во время преобразования либо Long.MAX_VALUE при положительном переполнении.

toMinutes

public long toMinutes(long duration)
Эквивалентно MINUTES.convert(duration, this).
Параметры:
duration — длительность
Возвращает:
преобразованную длительность или Long.MIN_VALUE при отрицательном переполнении во время преобразования либо Long.MAX_VALUE при положительном переполнении.
С версии:
1.6

toHours

public long toHours(long duration)
Эквивалентно HOURS.convert(duration, this).
Параметры:
duration — длительность
Возвращает:
преобразованную длительность или Long.MIN_VALUE при отрицательном переполнении во время преобразования либо Long.MAX_VALUE при положительном переполнении.
С версии:
1.6

toDays

public long toDays(long duration)
Эквивалентно DAYS.convert(duration, this).
Параметры:
duration — длительность
Возвращает:
преобразованную длительность
С версии:
1.6

timedWait

public void timedWait(Object obj, long timeout) throws InterruptedException
Выполняет Object.wait с таймаутом и использованием этой единицы времени. Это вспомогательный метод, преобразующий аргументы таймаута в формат, необходимый методу Object.wait.

Например, можно реализовать блокирующий метод poll (см. BlockingQueue.poll) следующим образом:

public E poll(long timeout, TimeUnit unit)
    throws InterruptedException {
  synchronized (lock) {
    while (isEmpty()) {
      unit.timedWait(lock, timeout);
      ...
    }
  }
}
Параметры:
obj — объект, на котором следует ожидать
timeout — максимальное время ожидания. Если значение меньше или равно нулю, ожидание не выполняется.
Выбрасывает:
IllegalMonitorStateException — если текущий поток не является владельцем монитора объекта.
InterruptedException — если во время ожидания поток был прерван

timedJoin

public void timedJoin(Thread thread, long timeout) throws InterruptedException
Выполняет Thread.join с таймаутом и использованием этой единицы времени. Это вспомогательный метод, преобразующий аргументы времени в формат, необходимый методу Thread.join.
Параметры:
thread — поток, завершения которого следует ожидать
timeout — максимальное время ожидания. Если значение меньше или равно нулю, ожидание не выполняется.
Выбрасывает:
InterruptedException — если во время ожидания поток был прерван

sleep

public void sleep(long timeout) throws InterruptedException
Выполняет Thread.sleep с использованием этой единицы времени. Это вспомогательный метод, преобразующий аргументы времени в формат, необходимый методу Thread.sleep.
Параметры:
timeout — минимальное время сна. Если значение меньше или равно нулю, сон не выполняется.
Выбрасывает:
InterruptedException — если во время сна поток был прерван

toChronoUnit

public ChronoUnit toChronoUnit()
Преобразует эту TimeUnit в эквивалентную ChronoUnit.
Возвращает:
эквивалентную преобразованную ChronoUnit
С версии:
9

of

public static TimeUnit of(ChronoUnit chronoUnit)
Преобразует ChronoUnit в эквивалентную TimeUnit.
Параметры:
chronoUnit — ChronoUnit для преобразования
Возвращает:
эквивалентную преобразованную TimeUnit
Выбрасывает:
IllegalArgumentException — если для chronoUnit нет эквивалентной TimeUnit
NullPointerException — если chronoUnit равно null
С версии:
9

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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