public enum TimeUnit extends Enum<TimeUnit>
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
相同的粒度注意到时间的TimeUnit
。
Enum Constant and Description |
---|
DAYS
时间单位代表二十四小时
|
HOURS
时间单位代表六十分钟
|
MICROSECONDS
时间单位代表千分之一毫秒
|
MILLISECONDS
时间单位为千分之一秒
|
MINUTES
时间单位代表60秒
|
NANOSECONDS
时间单位代表千分之一千分之一
|
SECONDS
时间单位代表一秒
|
Modifier and Type | Method and Description |
---|---|
long |
convert(long sourceDuration, TimeUnit sourceUnit)
将给定单位的给定持续时间转换为本机。
|
void |
sleep(long timeout)
使用此时间单位执行
Thread.sleep 。
|
void |
timedJoin(Thread thread, long timeout)
使用此时间单位执行定时
Thread.join 。
|
void |
timedWait(Object obj, long timeout)
使用此时间单位执行定时的
Object.wait 。
|
long |
toDays(long duration)
|
long |
toHours(long duration)
|
long |
toMicros(long duration)
|
long |
toMillis(long duration)
|
long |
toMinutes(long duration)
|
long |
toNanos(long duration)
|
long |
toSeconds(long duration)
|
static TimeUnit |
valueOf(String name)
以指定的名称返回此类型的枚举常量。
|
static TimeUnit[] |
values()
按照它们声明的顺序返回一个包含此枚举类型常量的数组。
|
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
public static final TimeUnit HOURS
public static final TimeUnit DAYS
public static TimeUnit[] values()
for (TimeUnit c : TimeUnit.values())
System.out.println(c);
public static TimeUnit valueOf(String name)
name
- 要返回的枚举常量的名称。
IllegalArgumentException
- 如果此枚举类型没有指定名称的常量
NullPointerException
- 如果参数为空
public long convert(long sourceDuration, TimeUnit sourceUnit)
999
转换为秒会导致0
。
从更粗糙到更细粒度的转换,数值溢出饱和的Long.MIN_VALUE
如果为负, Long.MAX_VALUE
否则为Long.MIN_VALUE
。
例如,要将10分钟转换成毫秒,请使用: TimeUnit.MILLISECONDS.convert(10L, TimeUnit.MINUTES)
sourceDuration
- 给定的持续时间
sourceUnit
sourceUnit
-
sourceDuration
参数的单位
Long.MIN_VALUE
如果转换将负面溢出,或
Long.MAX_VALUE
如果它会积极溢出。
public long toNanos(long duration)
duration
- 持续时间
Long.MIN_VALUE
如果转换将负面溢出,或
Long.MAX_VALUE
如果它会积极溢出。
public long toMicros(long duration)
duration
- 持续时间
Long.MIN_VALUE
如果转换将负面溢出,或
Long.MAX_VALUE
如果它会积极溢出。
public long toMillis(long duration)
duration
- 持续时间
Long.MIN_VALUE
如果转换将负面溢出,或
Long.MAX_VALUE
如果它会积极溢出。
public long toSeconds(long duration)
duration
- 持续时间
Long.MIN_VALUE
如果转换将负面溢出,或
Long.MAX_VALUE
如果它会积极溢出。
public long toMinutes(long duration)
duration
- 持续时间
Long.MIN_VALUE
如果转换将负面溢出,或
Long.MAX_VALUE
如果它会积极溢出。
public long toHours(long duration)
duration
- 持续时间
Long.MIN_VALUE
如果转换将负面溢出,或
Long.MAX_VALUE
如果它会积极的溢出。
public long toDays(long duration)
duration
- 持续时间
public void timedWait(Object obj, long timeout) throws InterruptedException
Object.wait
。
这是一个方便的方法,将超时参数转换为Object.wait
方法所需的Object.wait
。
例如,您可以使用poll
方法实现阻止poll
方法(参见BlockingQueue.poll
)
public synchronized Object poll(long timeout, TimeUnit unit) throws InterruptedException { while (empty) { unit.timedWait(this, timeout); ... } }
obj
- 要等待的对象
timeout
- 等待的最长时间
如果小于或等于零,不要等待。
InterruptedException
- 如果在等待时中断
public void timedJoin(Thread thread, long timeout) throws InterruptedException
Thread.join
。
这是一种方便的方法,将时间参数转换为Thread.join
方法所需的Thread.join
。
thread
- 等待的线程
timeout
- 等待的最长时间。
如果小于或等于零,不要等待。
InterruptedException
- 如果在等待时中断
public void sleep(long timeout) throws InterruptedException
Thread.sleep
。
这是一种方便的方法,将时间参数转换为Thread.sleep
方法所需的Thread.sleep
。
timeout
- 睡眠时间最短
如果小于或等于零,不要睡觉。
InterruptedException
- 睡觉时中断
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.