Перечисление TimeUnit
- Все реализованные интерфейсы:
-
Serializable,Comparable<TimeUnit>,Constable
public enum TimeUnit extends Enum<TimeUnit>
Единица измерения времени в основном используется для того, чтобы указать методам, основанным на времени, как следует интерпретировать заданный параметр времени. Например, следующий код будет ожидать в течение 50 миллисекунд, если lock недоступен:
Lock lock = ...;
if (lock.tryLock(50L, TimeUnit.MILLISECONDS)) ... а этот код будет ожидать в течение 50 секунд:
Lock lock = ...;
if (lock.tryLock(50L, TimeUnit.SECONDS)) ... Однако следует отметить, что нет гарантии, что конкретная реализация таймаута сможет заметить течение времени с такой же точностью, как и заданная единица измерения времени.- С:
- 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() |
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления. |
Подробности констант перечисления
НАНОСЕКУНДЫ
public static final TimeUnit NANOSECONDS
МИКРОСЕКУНДЫ
public static final TimeUnit MICROSECONDS
МИЛЛИСЕКУНДЫ
public static final TimeUnit MILLISECONDS
СЕКУНДЫ
public static final TimeUnit SECONDS
МИНУТЫ
public static final TimeUnit MINUTES
- С момента:
- 1.6
ЧАСЫ
public static final TimeUnit HOURS
- С момента:
- 1.6
ДНИ
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)
Для любого 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
- См. также:
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. Например, вы могли бы реализовать метод блокирующей очереди (см. 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, 2021, 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/17/docs/api/java.base/java/util/concurrent/TimeUnit.html