Spec-Zone.ru › OpenJDK 24

Перечисление TimeUnit

java.lang.Object
java.lang.Enum<TimeUnit>
java.util.concurrent.TimeUnit
Все реализованные интерфейсы:
Serializable, Comparable<TimeUnit>, Constable
public enum TimeUnit extends Enum<TimeUnit>
A 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 sourceDuration, TimeUnit sourceUnit)
Преобразует заданную продолжительность времени в заданной единице измерения в данную единицу измерения.
long convert(Duration duration)
Преобразует заданную продолжительность времени в данную единицу измерения.
static TimeUnit of(ChronoUnit chronoUnit)
Преобразует заданное время в эквивалентное значение в данной единице измерения.
void sleep(long timeout)
Выполняет Thread.sleep используя данную единицу измерения времени.
void timedJoin(Thread thread, long timeout)
Выполняет ограниченное по времени Thread.join используя данную единицу измерения времени.
void timedWait(Object obj, long timeout)
Выполняет ограниченное по времени Object.wait используя данную единицу измерения времени.
ChronoUnit toChronoUnit()
Преобразует данную единицу измерения времени в эквивалентное значение в другой единице измерения.
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()
Возвращает массив, содержащий все константы этого класса перечислений в порядке их объявления.

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

clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf

Методы, объявленные в классе java.lang.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 Note:
Этот метод отличается от 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

© 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

Spec-Zone.ru

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