TimeUnit表示给定粒度单位的持续时间,并提供跨单元转换的实用方法,以及在这些单元中执行定时和延迟操作。
TimeUnit不保留时间信息,但仅帮助组织和使用可在各种上下文中单独维护的时间表示。
纳秒定义为千分之一微秒,微秒为千分之一毫秒,毫秒为千分之一秒,一分钟为六十秒,一小时为六十分钟,一天为二十四小时。
TimeUnit主要用于通知基于时间的方法如何解释给定的定时参数。 例如,如果lock不可用,则以下代码将在50毫秒内超时:
Lock lock = ...; if (lock.tryLock(50L, TimeUnit.MILLISECONDS)) ...
而此代码将在50秒内超时:
Lock lock = ...; if (lock.tryLock(50L, TimeUnit.SECONDS)) ...
但请注意,无法保证特定的超时实现能够以与给定的TimeUnit相同的粒度注意到时间的TimeUnit 。
时间单位代表二十四小时。
时间单位代表六十分钟。
时间单位代表千分之一毫秒。
时间单位代表千分之一秒。
时间单位代表六十秒。
时间单位代表千分之一微秒。
时间单位代表一秒。
将给定单位的给定持续时间转换为此单位。
将给定的持续时间转换为此单位。
将
ChronoUnit转换为等效值
TimeUnit 。
使用此时间单位执行
Thread.sleep 。
使用此时间单位执行定时
Thread.join 。
使用此时间单位执行定时
Object.wait 。
将此
TimeUnit转换为等效值
ChronoUnit 。
相当于
DAYS.convert(duration, this) 。
相当于
HOURS.convert(duration, this) 。
相当于
MICROSECONDS.convert(duration, this) 。
相当于
MILLISECONDS.convert(duration, this) 。
相当于
MINUTES.convert(duration, this) 。
相当于
NANOSECONDS.convert(duration, this) 。
相当于
SECONDS.convert(duration, this) 。
返回具有指定名称的此类型的枚举常量。
按照声明的顺序返回一个包含此枚举类型常量的数组。
时间单位代表千分之一微秒。
时间单位代表千分之一毫秒。
时间单位代表千分之一秒。
时间单位代表一秒。
时间单位代表六十秒。
时间单位代表六十分钟。
时间单位代表二十四小时。
按照声明的顺序返回一个包含此枚举类型常量的数组。
此方法可用于迭代常量,如下所示:
for (TimeUnit c : TimeUnit.values())
System.out.println(c);
返回具有指定名称的此类型的枚举常量。
该字符串必须与用于声明此类型中的枚举常量的标识符完全匹配。
(不允许使用无关的空白字符。)
将给定单位的给定持续时间转换为此单位。
从较细粒度到较粗粒度的转换会截断,因此会失去精度。
例如,将999毫秒转换为秒会导致0 。
从粗略到更细粒度的转换,如果为负,则数值溢出的参数饱和为Long.MIN_VALUE如果为正, Long.MAX_VALUE 。
例如,要将10分钟转换为毫秒,请使用: TimeUnit.MILLISECONDS.convert(10L, TimeUnit.MINUTES)
将给定的持续时间转换为此单位。
对于任何TIMEUNIT unit , unit.convert(Duration.ofNanos(n))相当于unit.convert(n, NANOSECONDS) ,和unit.convert(Duration.of(n, unit.toChronoUnit()))相当于n (在没有溢出的)。
使用此时间单位执行定时Object.wait 。
这是一种便捷方法,可将超时参数转换为Object.wait方法所需的Object.wait 。
例如,您可以使用poll方法实现阻止poll方法(请参阅BlockingQueue.poll ):
public E poll(long timeout, TimeUnit unit) throws InterruptedException { synchronized (lock) { while (isEmpty()) { unit.timedWait(lock, timeout); ... } } }
使用此时间单位执行定时Thread.join 。
这是一种便捷方法,可将时间参数转换为Thread.join方法所需的Thread.join 。
这是一种便捷方法,可将时间参数转换为Thread.sleep方法所需的Thread.sleep 。
将此
TimeUnit转换为等效值
ChronoUnit 。
将
ChronoUnit转换为等效的
TimeUnit 。
Enum Constants
Enum Constant
描述
时间单位代表二十四小时。
时间单位代表六十分钟。
时间单位代表千分之一毫秒。
时间单位代表千分之一秒。
时间单位代表六十秒。
时间单位代表千分之一微秒。
时间单位代表一秒。变量和类型
方法
描述
long
TimeUnit sourceUnit)
将给定单位的给定持续时间转换为此单位。
long
将给定的持续时间转换为此单位。
ChronoUnit chronoUnit)
将
ChronoUnit转换为等效值
TimeUnit 。
void
void
Thread thread, long timeout)
使用此时间单位执行定时
Thread.join 。
void
Object obj, long timeout)
使用此时间单位执行定时
Object.wait 。
将此
TimeUnit转换为等效值
ChronoUnit 。
返回具有指定名称的此类型的枚举常量。
static TimeUnit[]
按照声明的顺序返回一个包含此枚举类型常量的数组。