Класс перечисления 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 |
convert |
Преобразует заданную длительность времени в эту единицу. |
static TimeUnit |
of |
Преобразует ChronoUnit в эквивалентный TimeUnit. |
void |
sleep |
Выполняет Thread.sleep с использованием этой единицы времени. |
void |
timedJoin |
Выполняет Thread.join с таймаутом и использованием этой единицы времени. |
void |
timedWait |
Выполняет Object.wait с таймаутом и использованием этой единицы времени. |
ChronoUnit |
toChronoUnit() |
Преобразует эту TimeUnit в эквивалентную ChronoUnit. |
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() |
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления. |
Методы, объявленные в классе Enum
clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf | Модификатор и тип | Метод | Описание |
|---|---|---|
protected final Object |
clone() |
Выбрасывает CloneNotSupportedException. |
final int |
compareTo |
Сравнивает это перечисление с указанным объектом, определяя порядок. |
final Optional |
describeConstable() |
Возвращает дескриптор перечисления EnumDesc для этого экземпляра, если его можно создать, или пустой Optional, если создать его нельзя. |
final boolean |
equals |
Возвращает true, если указанный объект равен этой константе перечисления. |
protected final void |
finalize() |
Устарело, подлежит удалению: этот элемент API может быть удалён в будущей версии. Метод завершения помечен как устаревший и подлежит удалению. |
final Class |
getDeclaringClass() |
Возвращает объект Class, соответствующий типу перечисления этой константы. |
final int |
hashCode() |
Возвращает хеш-код этой константы перечисления. |
final String |
name() |
Возвращает имя этой константы перечисления в точности так, как оно объявлено в объявлении перечисления. |
final int |
ordinal() |
Возвращает порядковый номер этой константы перечисления (её позицию в объявлении перечисления, где первой константе присваивается номер 0). |
String |
toString() |
Возвращает имя этой константы перечисления, указанное в объявлении. |
static <T extends Enum<T>> |
valueOf |
Возвращает константу указанного класса перечисления с указанным именем. |
Методы, объявленные в классе Object
getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо истечения заданного периода реального времени. |
final void |
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
- См. также:
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
© 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.