Spec-Zone.ru › OpenJDK 17

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

java.lang.Object
java.lang.Enum<TimeUnit>
java.util.concurrent.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 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

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

НАНОСЕКУНДЫ

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
См. также:
  • 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.

Например, вы могли бы реализовать метод блокирующей очереди (см. 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

Spec-Zone.ru

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