Spec-Zone.ru › OpenJDK 25

Класс перечисления 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>

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

Константа перечисления Описание
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

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

getClass, notify, notifyAll, wait, wait, wait

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

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 — максимальное время ожидания. Если значение меньше или равно нулю, ожидание не выполняется.
Вызывает исключение:
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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/concurrent/TimeUnit.html

Spec-Zone.ru

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