Перечисление TimeUnit
- Все реализованные интерфейсы:
-
Serializable,Comparable<TimeUnit>,Constable
public enum TimeUnit extends Enum<TimeUnit>
TimeUnit представляет временные интервалы на заданном уровне гранулярности и предоставляет вспомогательные методы для преобразования между единицами измерения, а также для выполнения операций тайминга и задержки в этих единицах. A TimeUnit не сохраняет информацию о времени, а только помогает организовать и использовать представления времени, которые могут храниться отдельно в различных контекстах. Наносекунда определяется как одна тысячная микросекунды, микросекунда как одна тысячная миллисекунды, миллисекунда как одна тысячная секунды, минута как шестьдесят секунд, час как шестьдесят минут, а день как двадцать четыре часа. A TimeUnit в основном используется для того, чтобы сообщить методам, основанным на времени, как следует интерпретировать заданный параметр тайминга. Например, следующий код будет ожидать в течение 50 миллисекунд, если lock недоступен:
Lock lock = ...;
if (lock.tryLock(50L, TimeUnit.MILLISECONDS)) ... в то время как этот код будет ожидать в течение 50 секунд:
Lock lock = ...;
if (lock.tryLock(50L, TimeUnit.SECONDS)) ... Однако следует отметить, что нет гарантии, что конкретная реализация таймаута сможет заметить течение времени с такой же гранулярностью, как и заданная TimeUnit.- С:
- 1.5
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе java.lang.Enum
Enum.EnumDesc<E extends Enum<E>>
Краткое описание констант перечисления
| Постоянная перечисления | Описание |
|---|---|
DAYS |
Единица измерения времени, представляющая двадцать четыре часа. |
HOURS |
Единица измерения времени, представляющая шестьдесят минут. |
MICROSECONDS |
Единица измерения времени, представляющая одну тысячную миллисекунды. |
MILLISECONDS |
Единица измерения времени, представляющая одну тысячную секунды. |
MINUTES |
Единица измерения времени, представляющая шестьдесят секунд. |
NANOSECONDS |
Единица измерения времени, представляющая одну тысячную микросекунды. |
SECONDS |
Единица измерения времени, представляющая одну секунду. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
long |
convert |
Преобразует заданную продолжительность времени в заданной единице измерения в данную единицу измерения. |
long |
convert |
Преобразует заданную продолжительность времени в данную единицу измерения. |
static TimeUnit |
of |
Преобразует заданное время в эквивалентное значение в данной единице измерения. |
void |
sleep |
Выполняет Thread.sleep используя данную единицу измерения времени. |
void |
timedJoin |
Выполняет ограниченное по времени Thread.join используя данную единицу измерения времени. |
void |
timedWait |
Выполняет ограниченное по времени Object.wait используя данную единицу измерения времени. |
ChronoUnit |
toChronoUnit() |
Преобразует данную единицу измерения времени в эквивалентное значение в другой единице измерения. |
long |
toDays |
Эквивалентно DAYS.convert(duration, this). |
long |
toHours |
Эквивалентно HOURS.convert(duration, this). |
long |
toMicros |
Эквивалентно MICROSECONDS.convert(duration, this). |
long |
toMillis |
Эквивалентно MILLISECONDS.convert(duration, this). |
long |
toMinutes |
Эквивалентно MINUTES.convert(duration, this). |
long |
toNanos |
Эквивалентно NANOSECONDS.convert(duration, this). |
long |
toSeconds |
Эквивалентно SECONDS.convert(duration, this). |
static TimeUnit |
valueOf |
Возвращает константу перечисления данного класса с заданным именем. |
static TimeUnit[] |
values() |
Возвращает массив, содержащий все константы этого класса перечислений в порядке их объявления. |
Подробное описание констант перечисления
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 Note:
- Этот метод отличается от
Duration.toNanos()тем, что он не вызываетArithmeticExceptionпри числовом переполнении. - Параметры:
-
duration- продолжительность времени - Возвращает:
- преобразованная продолжительность в этой единице или
Long.MIN_VALUE, если преобразование привело бы к отрицательному переполнению, илиLong.MAX_VALUE, если бы оно привело к положительному переполнению. - Исключения:
-
NullPointerException- еслиdurationравно null - С версии:
- 11
- См. также:
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
© 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/util/concurrent/TimeUnit.html