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

Все реализуемые интерфейсы:
Serializable, Comparable<TimeUnit>
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

Постоянные значения перечисления

Постоянное значение перечисления Описание
DAYS

Единица измерения времени, представляющая двадцать четыре часа.

HOURS

Единица измерения времени, представляющая шестьдесят минут.

MICROSECONDS

Единица измерения времени, представляющая одну тысячную миллисекунды.

MILLISECONDS

Единица измерения времени, представляющая одну тысячную секунды.

MINUTES

Единица измерения времени, представляющая шестьдесят секунд.

NANOSECONDS

Единица измерения времени, представляющая одну тысячную микросекунды.

SECONDS

Единица измерения времени, представляющая одну секунду.

Методы

Модификатор и тип Метод Описание
long convert​(long sourceDuration, TimeUnit sourceUnit)

Преобразует заданный временной интервал в заданной единице в данную единицу.

long convert​(Duration duration)

Преобразует заданный временной интервал в данную единицу.

static TimeUnit of​(ChronoUnit chronoUnit)

Преобразует ChronoUnit в эквивалентное TimeUnit.

void sleep​(long timeout)

Выполняет Thread.sleep с использованием этой единицы измерения времени.

void timedJoin​(Thread thread, long timeout)

Выполняет операцию ожидания Thread.join с использованием этой единицы измерения времени.

void timedWait​(Object obj, long timeout)

Выполняет операцию ожидания Object.wait с использованием этой единицы измерения времени.

ChronoUnit toChronoUnit()

Преобразует данную TimeUnit в эквивалентное ChronoUnit.

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, 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

Единица времени, представляющая шестьдесят секунд.

Since:
1.6

HOURS

public static final TimeUnit HOURS

Единица времени, представляющая шестьдесят минут.

Since:
1.6

DAYS

public static final TimeUnit DAYS

Единица времени, представляющая двадцать четыре часа.

Since:
1.6

Методы

values

public static TimeUnit[] values()

Возвращает массив, содержащий константы этого типа перечисления в порядке их объявления. Этот метод может использоваться для итерации по константам следующим образом:

for (TimeUnit c : TimeUnit.values())
    System.out.println(c);

Returns:
an array containing the constants of this enum type, in the order they are declared

valueOf

public static TimeUnit valueOf(String name)

Возвращает константу перечисления этого типа с указанным именем. Строка должна точно совпадать с идентификатором, используемым для объявления константы перечисления в этом типе. (Лишние пробелы не допускаются.)

Parameters:
name - the name of the enum constant to be returned.
Returns:
the enum constant with the specified name
Throws:
IllegalArgumentException - if this enum type has no constant with the specified name
NullPointerException - if the argument is null

convert

public long convert(long sourceDuration,
                    TimeUnit sourceUnit)

Преобразует заданную продолжительность времени в заданной единице в эту единицу. Преобразования из более мелких в более крупные единицы усекаются, то есть теряют точность. Например, преобразование 999 миллисекунд в секунды приводит к 0. Преобразования из более крупных в более мелкие единицы с аргументами, которые привели бы к численному переполнению, насыщаются до Long.MIN_VALUE если отрицательны, или Long.MAX_VALUE если положительны.

Например, чтобы преобразовать 10 минут в миллисекунды, используйте: TimeUnit.MILLISECONDS.convert(10L, TimeUnit.MINUTES)

Parameters:
sourceDuration - the time duration in the given sourceUnit
sourceUnit - the unit of the sourceDuration argument
Returns:
the converted duration in this unit, or Long.MIN_VALUE if conversion would negatively overflow, or Long.MAX_VALUE if it would positively overflow.

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 при числовом переполнении.
Parameters:
duration - the time duration
Returns:
the converted duration in this unit, or Long.MIN_VALUE if conversion would negatively overflow, or Long.MAX_VALUE if it would positively overflow.
Throws:
NullPointerException - if duration is null
Since:
11
See Also:
Duration.of(long,TemporalUnit)

toNanos

public long toNanos(long duration)

Эквивалентно NANOSECONDS.convert(duration, this).

Parameters:
duration - the duration
Returns:
the converted duration, or Long.MIN_VALUE if conversion would negatively overflow, or Long.MAX_VALUE if it would positively overflow.

toMicros

public long toMicros(long duration)

Эквивалентно MICROSECONDS.convert(duration, this).

Parameters:
duration - the duration
Returns:
the converted duration, or Long.MIN_VALUE if conversion would negatively overflow, or Long.MAX_VALUE if it would positively overflow.

toMillis

public long toMillis(long duration)

Эквивалентно MILLISECONDS.convert(duration, this).

Parameters:
duration - the duration
Returns:
the converted duration, or Long.MIN_VALUE if conversion would negatively overflow, or Long.MAX_VALUE if it would positively overflow.

toSeconds

public long toSeconds(long duration)

Эквивалентно SECONDS.convert(duration, this).

Parameters:
duration - the duration
Returns:
the converted duration, or Long.MIN_VALUE if conversion would negatively overflow, or Long.MAX_VALUE if it would positively overflow.

toMinutes

public long toMinutes(long duration)

Эквивалентно MINUTES.convert(duration, this).

Parameters:
duration - the duration
Returns:
the converted duration, or Long.MIN_VALUE if conversion would negatively overflow, or Long.MAX_VALUE if it would positively overflow.
Since:
1.6

toHours

public long toHours(long duration)

Эквивалентно HOURS.convert(duration, this).

Parameters:
duration - the duration
Returns:
the converted duration, or Long.MIN_VALUE if conversion would negatively overflow, or Long.MAX_VALUE if it would positively overflow.
Since:
1.6

toDays

public long toDays(long duration)

Эквивалентно DAYS.convert(duration, this).

Parameters:
duration - the duration
Returns:
the converted duration
Since:
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);
       ...
     }
   }
 }
Parameters:
obj - the object to wait on
timeout - the maximum time to wait. If less than or equal to zero, do not wait at all.
Throws:
InterruptedException - if interrupted while waiting

timedJoin

public void timedJoin(Thread thread,
                      long timeout)
               throws InterruptedException

Выполняет метод Thread.join с ограничением по времени, используя эту единицу времени. Это вспомогательный метод, который преобразует аргументы времени в форму, требуемую методом Thread.join.

Parameters:
thread - the thread to wait for
timeout - the maximum time to wait. If less than or equal to zero, do not wait at all.
Throws:
InterruptedException - if interrupted while waiting

sleep

public void sleep(long timeout)
           throws InterruptedException

Выполняет метод Thread.sleep, используя эту единицу времени. Это вспомогательный метод, который преобразует аргументы времени в форму, требуемую методом Thread.sleep.

Parameters:
timeout - the minimum time to sleep. If less than or equal to zero, do not sleep at all.
Throws:
InterruptedException - if interrupted while sleeping

toChronoUnit

public ChronoUnit toChronoUnit()

Преобразует эту TimeUnit в эквивалентную ChronoUnit.

Returns:
the converted equivalent ChronoUnit
Since:
9

of

public static TimeUnit of(ChronoUnit chronoUnit)

Преобразует ChronoUnit в эквивалентную TimeUnit.

Parameters:
chronoUnit - the ChronoUnit to convert
Returns:
the converted equivalent TimeUnit
Throws:
IllegalArgumentException - if chronoUnit has no equivalent TimeUnit
NullPointerException - if chronoUnit is null
Since:
9

© 1993, 2020, 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/11/docs/api/java.base/java/util/concurrent/TimeUnit.html

Spec-Zone .ru
спецификации, руководства, описания, API