JavaTM Platform
Standard Ed. 6

java.util.concurrent
列挙型 TimeUnit

java.lang.Object
  上位を拡張 java.lang.Enum<TimeUnit>
      上位を拡張 java.util.concurrent.TimeUnit
すべての実装されたインタフェース:
Serializable, Comparable<TimeUnit>

public enum TimeUnit
extends Enum<TimeUnit>

TimeUnit は、指定された粒度単位で時間を表し、単位を変換したり、それらの単位でタイミングおよび遅延操作を実行したりするユーティリティーメソッドを提供します。TimeUnit は、時間情報を保持せず、さまざまなコンテキスト間で独立して保持される時間表現の整理および使用だけを行うことができます。ナノ秒はマイクロ秒の 1000 分の 1、マイクロ秒はミリ秒の 1000 分の 1、ミリ秒は秒の 1000 分の 1、分は 60 秒、時は 60 分、日は 24 時間としてそれぞれ定義されます。

TimeUnit は、主に時間ベースのメソッドに対して、指定されたタイミングパラメータの解釈方法を指示するために使用します。たとえば次のコードは、ロック を利用できない場合、50 ミリ秒でタイムアウトします。

  Lock lock = ...;
  if ( lock.tryLock(50L, TimeUnit.MILLISECONDS) ) ...
 
一方、次のコードは、50 秒でタイムアウトします。
  Lock lock = ...;
  if ( lock.tryLock(50L, TimeUnit.SECONDS) ) ...
 
ただし、特定のタイムアウト実装で、指定された TimeUnit と同じ粒度で時間経過を通知できる保証はありません。

導入されたバージョン:
1.5

列挙型定数の概要
DAYS
           
HOURS
           
MICROSECONDS
           
MILLISECONDS
           
MINUTES
           
NANOSECONDS
           
SECONDS
           
 
メソッドの概要
 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)
          DAYS.convert(duration, this) と同等です。
 long toHours(long duration)
          HOURS.convert(duration, this) と同等です。
 long toMicros(long duration)
          MICROSECONDS.convert(duration, this) と同等です。
 long toMillis(long duration)
          MILLISECONDS.convert(duration, this) と同等です。
 long toMinutes(long duration)
          MINUTES.convert(duration, this) と同等です。
 long toNanos(long duration)
          NANOSECONDS.convert(duration, this) と同等です。
 long toSeconds(long duration)
          SECONDS.convert(duration, this) と同等です。
static TimeUnit valueOf(String name)
          指定した名前を持つこの型の列挙型定数を返します。
static TimeUnit[] values()
          この列挙型の定数を含む配列を宣言されている順序で返します。
 
クラス java.lang.Enum から継承されたメソッド
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
 
クラス java.lang.Object から継承されたメソッド
getClass, notify, notifyAll, wait, wait, wait
 

列挙型定数の詳細

NANOSECONDS

public static final TimeUnit NANOSECONDS

MICROSECONDS

public static final TimeUnit MICROSECONDS

MILLISECONDS

public static final TimeUnit MILLISECONDS

SECONDS

public static final TimeUnit SECONDS

MINUTES

public static final TimeUnit MINUTES

HOURS

public static final TimeUnit HOURS

DAYS

public static final TimeUnit DAYS
メソッドの詳細

values

public static TimeUnit[] values()
この列挙型の定数を含む配列を宣言されている順序で返します。 このメソッドは次のようにして定数を反復するために使用できます:
for (TimeUnit c : TimeUnit.values())
    System.out.println(c);

戻り値:
この列挙型の定数を宣言されている順序で含む配列

valueOf

public static TimeUnit valueOf(String name)
指定した名前を持つこの型の列挙型定数を返します。 文字列は、この型の列挙型定数を宣言するのに使用した識別子と厳密に 一致している必要があります (余分な空白文字を含めることはできません)。

パラメータ:
name - 返される列挙型定数の名前
戻り値:
指定された名前を持つ列挙型定数
例外:
IllegalArgumentException - 指定された名前を持つ定数を この列挙型が持っていない場合
NullPointerException - 引数が null の場合

convert

public long convert(long sourceDuration,
                    TimeUnit sourceUnit)
指定された単位による指定された時間を、この単位に変換します。粒度の細かいほうから粗いほうへの変換では切り詰めが発生するため、精度が失われます。たとえば 999 ミリ秒を秒に変換すると 0 になります。粒度の粗いほうから細かいほうへの変換で、数値的にオーバーフローが発生する引数を指定すると、負の場合は Long.MIN_VALUE、正の場合は Long.MAX_VALUE になります。

たとえば 10 分をミリ秒単位に変換するには、TimeUnit.MILLISECONDS.convert(10L, TimeUnit.MINUTES) を使用します。

パラメータ:
sourceDuration - 指定された sourceUnit での時間
sourceUnit - sourceDuration 引数の単位
戻り値:
この単位で変換された時間。変換が負にオーバーフローする場合は Long.MIN_VALUE、正にオーバーフローする場合は Long.MAX_VALUE

toNanos

public long toNanos(long duration)
NANOSECONDS.convert(duration, this) と同等です。

パラメータ:
duration - 時間
戻り値:
変換された時間。変換が負にオーバーフローする場合は Long.MIN_VALUE、正にオーバーフローする場合は Long.MAX_VALUE
関連項目:
convert(long, java.util.concurrent.TimeUnit)

toMicros

public long toMicros(long duration)
MICROSECONDS.convert(duration, this) と同等です。

パラメータ:
duration - 時間
戻り値:
変換された時間。変換が負にオーバーフローする場合は Long.MIN_VALUE、正にオーバーフローする場合は Long.MAX_VALUE
関連項目:
convert(long, java.util.concurrent.TimeUnit)

toMillis

public long toMillis(long duration)
MILLISECONDS.convert(duration, this) と同等です。

パラメータ:
duration - 時間
戻り値:
変換された時間。変換が負にオーバーフローする場合は Long.MIN_VALUE、正にオーバーフローする場合は Long.MAX_VALUE
関連項目:
convert(long, java.util.concurrent.TimeUnit)

toSeconds

public long toSeconds(long duration)
SECONDS.convert(duration, this) と同等です。

パラメータ:
duration - 時間
戻り値:
変換された時間。変換が負にオーバーフローする場合は Long.MIN_VALUE、正にオーバーフローする場合は Long.MAX_VALUE
関連項目:
convert(long, java.util.concurrent.TimeUnit)

toMinutes

public long toMinutes(long duration)
MINUTES.convert(duration, this) と同等です。

パラメータ:
duration - 時間
戻り値:
変換された時間。変換が負にオーバーフローする場合は Long.MIN_VALUE、正にオーバーフローする場合は Long.MAX_VALUE
導入されたバージョン:
1.6
関連項目:
convert(long, java.util.concurrent.TimeUnit)

toHours

public long toHours(long duration)
HOURS.convert(duration, this) と同等です。

パラメータ:
duration - 時間
戻り値:
変換された時間。変換が負にオーバーフローする場合は Long.MIN_VALUE、正にオーバーフローする場合は Long.MAX_VALUE
導入されたバージョン:
1.6
関連項目:
convert(long, java.util.concurrent.TimeUnit)

toDays

public long toDays(long duration)
DAYS.convert(duration, this) と同等です。

パラメータ:
duration - 時間
戻り値:
変換された時間
導入されたバージョン:
1.6
関連項目:
convert(long, java.util.concurrent.TimeUnit)

timedWait

public void timedWait(Object obj,
                      long timeout)
               throws InterruptedException
この時間単位を使用して、時間指定された Object.wait を実行します。このメソッドは、timeout 引数を Object.wait メソッドで要求される形式に変換する簡易メソッドです。

たとえば次のようにして、ブロックする poll メソッドを実装できます (BlockingQueue.poll を参照)。

  public synchronized Object poll(long timeout, TimeUnit unit) throws InterruptedException {
    while (empty) {
      unit.timedWait(this, timeout);
      ...
    }
  }

パラメータ:
obj - 待機するオブジェクト
timeout - 待機する最長時間。ゼロまたはそれより小さい場合は待機しない
例外:
InterruptedException - 待機中に割り込みが発生した場合
関連項目:
Object.wait(long, int)

timedJoin

public void timedJoin(Thread thread,
                      long timeout)
               throws InterruptedException
この時間単位を使用して、時間指定された Thread.join を実行します。このメソッドは、time 引数を Thread.join メソッドで要求される形式に変換する簡易メソッドです。

パラメータ:
thread - 待機するスレッド
timeout - 待機する最長時間。ゼロまたはそれより小さい場合は待機しない
例外:
InterruptedException - 待機中に割り込みが発生した場合
関連項目:
Thread.join(long, int)

sleep

public void sleep(long timeout)
           throws InterruptedException
この単位を使用して Thread.sleep を実行します。このメソッドは time 引数を Thread.sleep メソッドで要求される形式に変換する簡易メソッドです。

パラメータ:
timeout - スリープする最小時間。ゼロまたはそれより小さい場合はスリープしない
例外:
InterruptedException - スリープ中に割り込みが発生した場合
関連項目:
Thread.sleep(long)

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。