TimeUnit
class TimeUnit
kotlin.Any | ||
↳ | kotlin.Enum<java.util.concurrent.TimeUnit> | |
↳ | java.util.concurrent.TimeUnit |
A represents time durations at a given unit of granularity and provides utility methods to convert across units, and to perform timing and delay operations in these units. A does not maintain time information, but only helps organize and use time representations that may be maintained separately across various contexts. A nanosecond is defined as one thousandth of a microsecond, a microsecond as one thousandth of a millisecond, a millisecond as one thousandth of a second, a minute as sixty seconds, an hour as sixty minutes, and a day as twenty four hours.
A TimeUnit
is mainly used to inform time-based methods how a given timing parameter should be interpreted. For example, the following code will timeout in 50 milliseconds if the is not available:
<code>Lock lock = ...; if (lock.tryLock(50L, TimeUnit.MILLISECONDS)) ...</code>while this code will timeout in 50 seconds:
<code>Lock lock = ...; if (lock.tryLock(50L, TimeUnit.SECONDS)) ...</code>Note however, that there is no guarantee that a particular timeout implementation will be able to notice the passage of time at the same granularity as the given
TimeUnit
.
Summary
Enum values | |
---|---|
Time unit representing twenty four hours. |
|
Time unit representing sixty minutes. |
|
Time unit representing one thousandth of a millisecond. |
|
Time unit representing one thousandth of a second. |
|
Time unit representing sixty seconds. |
|
Time unit representing one thousandth of a microsecond. |
|
Time unit representing one second. |
Public methods | |
---|---|
Long |
Converts the given time duration in the given unit to this unit. |
Long |
Converts the given time duration to this unit. |
static TimeUnit! |
of(chronoUnit: ChronoUnit!) Converts a |
Unit |
Performs a |
Unit |
Performs a timed |
Unit |
Performs a timed |
ChronoUnit! |
Converts this |
Long |
Equivalent to |
Long |
Equivalent to |
Long |
Equivalent to |
Long |
Equivalent to |
Long |
Equivalent to |
Long |
Equivalent to |
Long |
Equivalent to |
Enum values
MICROSECONDS
enum val MICROSECONDS : TimeUnit
Time unit representing one thousandth of a millisecond.
MILLISECONDS
enum val MILLISECONDS : TimeUnit
Time unit representing one thousandth of a second.
NANOSECONDS
enum val NANOSECONDS : TimeUnit
Time unit representing one thousandth of a microsecond.
Public methods
convert
fun convert(
sourceDuration: Long,
sourceUnit: TimeUnit!
): Long
Converts the given time duration in the given unit to this unit. Conversions from finer to coarser granularities truncate, so lose precision. For example, converting 999
milliseconds to seconds results in 0
. Conversions from coarser to finer granularities with arguments that would numerically overflow saturate to Long.MIN_VALUE
if negative or Long.MAX_VALUE
if positive.
For example, to convert 10 minutes to milliseconds, use: TimeUnit.MILLISECONDS.convert(10L, TimeUnit.MINUTES)
Parameters | |
---|---|
sourceDuration |
Long: the time duration in the given sourceUnit |
sourceUnit |
TimeUnit!: the unit of the sourceDuration argument |
Return | |
---|---|
Long |
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
fun convert(duration: Duration!): Long
Converts the given time duration to this unit.
For any TimeUnit unit
, unit.convert(Duration.ofNanos(n))
is equivalent to unit.convert(n, NANOSECONDS)
, and unit.convert(Duration.of(n, unit.toChronoUnit()))
is equivalent to n
(in the absence of overflow).
Parameters | |
---|---|
duration |
Duration!: the time duration |
Return | |
---|---|
Long |
the converted duration in this unit, or Long.MIN_VALUE if conversion would negatively overflow, or Long.MAX_VALUE if it would positively overflow. |
Exceptions | |
---|---|
java.lang.NullPointerException |
if duration is null |
See Also
of
static fun of(chronoUnit: ChronoUnit!): TimeUnit!
Converts a ChronoUnit
to the equivalent TimeUnit
.
Parameters | |
---|---|
chronoUnit |
ChronoUnit!: the ChronoUnit to convert |
Return | |
---|---|
TimeUnit! |
the converted equivalent TimeUnit |
Exceptions | |
---|---|
java.lang.IllegalArgumentException |
if chronoUnit has no equivalent TimeUnit |
java.lang.NullPointerException |
if chronoUnit is null |
sleep
fun sleep(timeout: Long): Unit
Performs a Thread.sleep
using this time unit. This is a convenience method that converts time arguments into the form required by the Thread.sleep
method.
Parameters | |
---|---|
timeout |
Long: the minimum time to sleep. If less than or equal to zero, do not sleep at all. |
Exceptions | |
---|---|
java.lang.InterruptedException |
if interrupted while sleeping |
timedJoin
fun timedJoin(
thread: Thread!,
timeout: Long
): Unit
Performs a timed Thread.join
using this time unit. This is a convenience method that converts time arguments into the form required by the Thread.join
method.
Parameters | |
---|---|
thread |
Thread!: the thread to wait for |
timeout |
Long: the maximum time to wait. If less than or equal to zero, do not wait at all. |
Exceptions | |
---|---|
java.lang.InterruptedException |
if interrupted while waiting |
timedWait
fun timedWait(
obj: Any!,
timeout: Long
): Unit
Performs a timed Object.wait
using this time unit. This is a convenience method that converts timeout arguments into the form required by the Object.wait
method.
For example, you could implement a blocking poll
method (see BlockingQueue.poll
) using:
<code>public E poll(long timeout, TimeUnit unit) throws InterruptedException { synchronized (lock) { while (isEmpty()) { unit.timedWait(lock, timeout); ... } } }</code>
Parameters | |
---|---|
obj |
Any!: the object to wait on |
timeout |
Long: the maximum time to wait. If less than or equal to zero, do not wait at all. |
Exceptions | |
---|---|
java.lang.InterruptedException |
if interrupted while waiting |
toChronoUnit
fun toChronoUnit(): ChronoUnit!
Converts this TimeUnit
to the equivalent ChronoUnit
.
Return | |
---|---|
ChronoUnit! |
the converted equivalent ChronoUnit |
toDays
fun toDays(duration: Long): Long
Equivalent to DAYS.convert(duration, this)
.
Parameters | |
---|---|
duration |
Long: the duration |
Return | |
---|---|
Long |
the converted duration |
toHours
fun toHours(duration: Long): Long
Equivalent to HOURS.convert(duration, this)
.
Parameters | |
---|---|
duration |
Long: the duration |
Return | |
---|---|
Long |
the converted duration, or Long.MIN_VALUE if conversion would negatively overflow, or Long.MAX_VALUE if it would positively overflow. |
toMicros
fun toMicros(duration: Long): Long
Equivalent to MICROSECONDS.convert(duration, this)
.
Parameters | |
---|---|
duration |
Long: the duration |
Return | |
---|---|
Long |
the converted duration, or Long.MIN_VALUE if conversion would negatively overflow, or Long.MAX_VALUE if it would positively overflow. |
toMillis
fun toMillis(duration: Long): Long
Equivalent to MILLISECONDS.convert(duration, this)
.
Parameters | |
---|---|
duration |
Long: the duration |
Return | |
---|---|
Long |
the converted duration, or Long.MIN_VALUE if conversion would negatively overflow, or Long.MAX_VALUE if it would positively overflow. |
toMinutes
fun toMinutes(duration: Long): Long
Equivalent to MINUTES.convert(duration, this)
.
Parameters | |
---|---|
duration |
Long: the duration |
Return | |
---|---|
Long |
the converted duration, or Long.MIN_VALUE if conversion would negatively overflow, or Long.MAX_VALUE if it would positively overflow. |
toNanos
fun toNanos(duration: Long): Long
Equivalent to NANOSECONDS.convert(duration, this)
.
Parameters | |
---|---|
duration |
Long: the duration |
Return | |
---|---|
Long |
the converted duration, or Long.MIN_VALUE if conversion would negatively overflow, or Long.MAX_VALUE if it would positively overflow. |
toSeconds
fun toSeconds(duration: Long): Long
Equivalent to SECONDS.convert(duration, this)
.
Parameters | |
---|---|
duration |
Long: the duration |
Return | |
---|---|
Long |
the converted duration, or Long.MIN_VALUE if conversion would negatively overflow, or Long.MAX_VALUE if it would positively overflow. |