This documentation differs from the official API. Jadeite adds extra features to the API including: variable font sizes, constructions examples, placeholders for classes and methods, and auto-generated “See Also” links. Additionally it is missing some items found in standard Javadoc documentation, including: generics type information, “Deprecated” tags and comments, “See Also” links, along with other minor differences. Please send any questions or feedback to bam@cs.cmu.edu.


java.util.concurrent
enum TimeUnit

java.lang.Object extended by java.lang.Enum extended by java.util.concurrent.TimeUnit
All Implemented Interfaces:
Serializable, Comparable

public enum TimeUnit
extends Enum

A TimeUnit 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 TimeUnit 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 {@link java.util.concurrent.locks.Lock lock} is not available:

  Lock lock = ...;
  if ( lock.tryLock(50L, TimeUnit.MILLISECONDS) ) ...
 
while this code will timeout in 50 seconds:
  Lock lock = ...;
  if ( lock.tryLock(50L, TimeUnit.SECONDS) ) ...
 
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.


Field Summary
static TimeUnit DAYS
          
static TimeUnit HOURS
          
static TimeUnit MICROSECONDS
          
static TimeUnit MILLISECONDS
          
static TimeUnit MINUTES
          
static TimeUnit NANOSECONDS
          
static TimeUnit SECONDS
          
 
Method Summary
 long
convert(long sourceDuration, TimeUnit sourceUnit)

          Convert the given time duration in the given unit to this unit.
 void
sleep(long timeout)

          Performs a Thread.sleep using this unit.
 void
timedJoin(Thread thread, long timeout)

          Performs a timed Thread.join using this time unit.
 void
timedWait(Object obj, long timeout)

          Performs a timed Object.wait using this time unit.
 long
toDays(long duration)

          Equivalent to DAYS.convert(duration, this).
 long
toHours(long duration)

          Equivalent to HOURS.convert(duration, this).
 long
toMicros(long duration)

          Equivalent to MICROSECONDS.convert(duration, this).
 long
toMillis(long duration)

          Equivalent to MILLISECONDS.convert(duration, this).
 long
toMinutes(long duration)

          Equivalent to MINUTES.convert(duration, this).
 long
toNanos(long duration)

          Equivalent to NANOSECONDS.convert(duration, this).
 long
toSeconds(long duration)

          Equivalent to SECONDS.convert(duration, this).
static TimeUnit

          
static TimeUnit[]

          
 
Methods inherited from class java.lang.Enum
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DAYS

public static final TimeUnit DAYS

HOURS

public static final TimeUnit HOURS

MICROSECONDS

public static final TimeUnit MICROSECONDS

MILLISECONDS

public static final TimeUnit MILLISECONDS

MINUTES

public static final TimeUnit MINUTES

NANOSECONDS

public static final TimeUnit NANOSECONDS

SECONDS

public static final TimeUnit SECONDS
Method Detail

convert

public long convert(long sourceDuration,
                    TimeUnit sourceUnit)
Convert 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 - 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.

sleep

public void sleep(long timeout)
           throws InterruptedException
Performs a Thread.sleep using this unit. This is a convenience method that converts time arguments into the form required by the Thread.sleep method.

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.

timedJoin

public void timedJoin(Thread thread,
                      long timeout)
               throws InterruptedException
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 - 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.

timedWait

public void timedWait(Object obj,
                      long timeout)
               throws InterruptedException
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 {@link BlockingQueue#poll BlockingQueue.poll}) using:

  public synchronized Object poll(long timeout, TimeUnit unit) throws InterruptedException {
    while (empty) {
      unit.timedWait(this, 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.

toDays

public long toDays(long duration)
Equivalent to DAYS.convert(duration, this).

Parameters:
duration - the duration
Returns:
the converted duration

toHours

public long toHours(long duration)
Equivalent to 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.

toMicros

public long toMicros(long duration)
Equivalent to 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)
Equivalent to 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.

toMinutes

public long toMinutes(long duration)
Equivalent to 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.

toNanos

public long toNanos(long duration)
Equivalent to 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.

toSeconds

public long toSeconds(long duration)
Equivalent to 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.

valueOf

public static TimeUnit valueOf(String name)
Parameters:
name

values

public static TimeUnit[] values()


This documentation differs from the official API. Jadeite adds extra features to the API including: variable font sizes, constructions examples, placeholders for classes and methods, and auto-generated “See Also” links. Additionally it is missing some items found in standard Javadoc documentation, including: generics type information, “Deprecated” tags and comments, “See Also” links, along with other minor differences. Please send any questions or feedback to bam@cs.cmu.edu.
This page displays the Jadeite version of the documention, which is derived from the offical documentation that contains this copyright notice:
Copyright 2008 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.
The official Sun™ documentation can be found here at http://java.sun.com/javase/6/docs/api/.