Класс TimeUnit
Класс TimeUnit - это перечисление (enum) из пакета
java.util.concurrent, которое представляет стандартные
единицы времени: наносекунды, микросекунды, миллисекунды,
секунды, минуты, часы и дни. Класс используется для
преобразования значений из одной единицы времени в другую,
а также для задания таймаутов в многопоточных конструкциях,
таких как BlockingQueue, Semaphore,
CountDownLatch, Lock и других. Каждая константа
перечисления хранит коэффициент перевода в наносекунды и
умеет выполнять арифметические операции над временем.
Основные константы класса: NANOSECONDS,
MICROSECONDS, MILLISECONDS, SECONDS,
MINUTES, HOURS, DAYS.
Каждая константа имеет методы toNanos,
toMicros, toMillis, toSeconds,
toMinutes, toHours, toDays,
а также методы sleep, timedJoin,
timedWait и convert.
Синтаксис
TimeUnit.КОНСТАНТА.метод(значение)
Пример
Давайте преобразуем значение из одной единицы времени
в другую с помощью метода toMillis:
import java.util.concurrent.TimeUnit;
public class Main
{
public static void main(String[] args)
{
long res = TimeUnit.SECONDS.toMillis(5);
System.out.println(res);
}
}
Результат выполнения кода:
5000
Пример
Давайте преобразуем дни в часы:
import java.util.concurrent.TimeUnit;
public class Main
{
public static void main(String[] args)
{
long res = TimeUnit.DAYS.toHours(2);
System.out.println(res);
}
}
Результат выполнения кода:
48
Пример
Давайте приостановим текущий поток на 2 секунды
с помощью метода sleep:
import java.util.concurrent.TimeUnit;
public class Main
{
public static void main(String[] args)
{
System.out.println("Before sleep");
try
{
TimeUnit.SECONDS.sleep(2);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
System.out.println("After sleep");
}
}
Результат выполнения кода:
"Before sleep"
"After sleep"