列挙型クラスTimeUnit

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

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

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

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

導入されたバージョン:
1.5
  • ネストされたクラスのサマリー

    Enumクラスで宣言されたネストされたクラス/インタフェース

    Enum.EnumDesc<E>
    修飾子と型
    クラス
    説明
    static final class 
    Enum.EnumDesc<E extends Enum<E>>
    enum定数の「名目記述子」
  • 列挙型定数のサマリー

    列挙型定数
    列挙型定数
    説明
    24時間を表す時間単位
    60分を表す時間単位
    ミリ秒の1000分の1を表す時間単位
    秒の1000分の1を表す時間単位
    60秒を表す時間単位
    マイクロ秒の1000分の1を表す時間単位
    1秒を表す時間単位
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    long
    convert(long sourceDuration, TimeUnit sourceUnit)
    指定された単位による指定されたデュレーションを、この単位に変換します。
    long
    convert(Duration duration)
    指定された期間をこの単位に変換します。
    static TimeUnit
    of(ChronoUnit chronoUnit)
    ChronoUnitを同等のTimeUnitに変換します。
    void
    sleep(long timeout)
    この時間単位を使用して、Thread.sleepを実行します。
    void
    timedJoin(Thread thread, long timeout)
    この時間単位を使用して、時間指定されたThread.joinを実行します。
    void
    timedWait(Object obj, long timeout)
    この時間単位を使用して、時間指定されたObject.waitを実行します。
    このTimeUnitを同等のChronoUnitに変換します。
    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
    指定された名前を持つこのクラスのenum定数を返します。
    static TimeUnit[]
    この列挙クラスの定数を含む配列を宣言されている順序で 返します。

    Enumクラスで宣言されたメソッド

    clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
    修飾子と型
    メソッド
    説明
    protected final Object
    CloneNotSupportedExceptionをスローします。
    final int
    このenumと指定されたオブジェクトの順序を比較します。
    このインスタンスの列挙型記述子EnumDescを返します(作成可能な場合)。作成できない場合は空のOptionalを返します。
    final boolean
    equals(Object other)
    指定されたオブジェクトがこのenum定数と同じ場合は、trueを返します。
    protected final void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は削除のために非推奨になりました。
    このenum定数のenum型に対応するClassオブジェクトを返します。
    final int
    このenum定数のハッシュ・コードを返します。
    final String
    enum宣言で宣言されているとおりのenum定数の名前を返します。
    final int
    列挙定数の序数(列挙宣言での位置。初期定数はゼロの序数に割り当てられる)を返します。
    宣言に含まれるとおりのenum定数の名前を返します。
    static <T extends Enum<T>>
    T
    valueOf(Class<T> enumClass, String name)
    指定された名前の指定されたenumクラスのenum定数を返します。

    クラスオブジェクトで宣言されたメソッド

    getClass, notify, notifyAll, wait, wait, wait
    修飾子と型
    メソッド
    説明
    final Class<?>
    このObjectの実行時クラスを返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • 列挙型定数の詳細

    • NANOSECONDS

      public static final TimeUnit NANOSECONDS
      マイクロ秒の1000分の1を表す時間単位
    • MICROSECONDS

      public static final TimeUnit MICROSECONDS
      ミリ秒の1000分の1を表す時間単位
    • MILLISECONDS

      public static final TimeUnit MILLISECONDS
      秒の1000分の1を表す時間単位
    • SECONDS

      public static final TimeUnit SECONDS
      1秒を表す時間単位
    • MINUTES

      public static final TimeUnit MINUTES
      60秒を表す時間単位
      導入されたバージョン:
      1.6
    • HOURS

      public static final TimeUnit HOURS
      60分を表す時間単位
      導入されたバージョン:
      1.6
    • DAYS

      public static final TimeUnit DAYS
      24時間を表す時間単位
      導入されたバージョン:
      1.6
  • メソッドの詳細

    • values

      public static TimeUnit[] values()
      この列挙クラスの定数を含む配列を宣言されている順序で 返します。
      戻り値:
      この列挙クラスの定数を宣言されている順序で含む配列
    • valueOf

      public static TimeUnit valueOf(String name)
      指定された名前を持つこのクラスのenum定数を返します。 文字列は、このクラスでenum定数を宣言するために使用される識別子と正確に一致する必要があります。 (不適切な空白文字は許可されません。)
      パラメータ:
      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
    • convert

      public long convert(Duration duration)
      指定された期間をこの単位に変換します。

      TimeUnit unitでは、unit.convert(Duration.ofNanos(n))unit.convert(n, NANOSECONDS)と同等、およびunit.convert(Duration.of(n, unit.toChronoUnit()))n (オーバーフローがない場合)と同等です。

      APIのノート:
      このメソッドは数値オーバーフローでArithmeticExceptionをスローしない点でDuration.toNanos()と異なります。
      パラメータ:
      duration - 期間
      戻り値:
      この単位での変換されたデュレーション。変換が負にオーバーフローする場合はLong.MIN_VALUE、正にオーバーフローする場合はLong.MAX_VALUE
      スロー:
      NullPointerException - durationがnullの場合
      導入されたバージョン:
      11
      関連項目:
    • toNanos

      public long toNanos(long duration)
      パラメータ:
      duration - デュレーション
      戻り値:
      変換されたデュレーション。変換が負にオーバーフローする場合はLong.MIN_VALUE、正にオーバーフローする場合はLong.MAX_VALUE
    • toMicros

      public long toMicros(long duration)
      パラメータ:
      duration - デュレーション
      戻り値:
      変換されたデュレーション。変換が負にオーバーフローする場合はLong.MIN_VALUE、正にオーバーフローする場合はLong.MAX_VALUE
    • toMillis

      public long toMillis(long duration)
      パラメータ:
      duration - デュレーション
      戻り値:
      変換されたデュレーション。変換が負にオーバーフローする場合はLong.MIN_VALUE、正にオーバーフローする場合はLong.MAX_VALUE
    • toSeconds

      public long toSeconds(long duration)
      パラメータ:
      duration - デュレーション
      戻り値:
      変換されたデュレーション。変換が負にオーバーフローする場合はLong.MIN_VALUE、正にオーバーフローする場合はLong.MAX_VALUE
    • toMinutes

      public long toMinutes(long duration)
      パラメータ:
      duration - デュレーション
      戻り値:
      変換されたデュレーション。変換が負にオーバーフローする場合はLong.MIN_VALUE、正にオーバーフローする場合はLong.MAX_VALUE
      導入されたバージョン:
      1.6
    • toHours

      public long toHours(long duration)
      パラメータ:
      duration - デュレーション
      戻り値:
      変換されたデュレーション。変換が負にオーバーフローする場合はLong.MIN_VALUE、正にオーバーフローする場合はLong.MAX_VALUE
      導入されたバージョン:
      1.6
    • toDays

      public long toDays(long duration)
      パラメータ:
      duration - デュレーション
      戻り値:
      変換されたデュレーション
      導入されたバージョン:
      1.6
    • timedWait

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

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

      public E poll(long timeout, TimeUnit unit)
          throws InterruptedException {
        synchronized (lock) {
          while (isEmpty()) {
            unit.timedWait(lock, timeout);
            ...
          }
        }
      }

      パラメータ:
      obj - 待機するオブジェクト
      timeout - 待機する最長時間。 ゼロまたはそれより小さい場合は待機しない。
      スロー:
      IllegalMonitorStateException - 現在のスレッドがオブジェクトのモニターを所有していない場合。
      InterruptedException - 待機中に割込みが発生した場合
    • timedJoin

      public void timedJoin(Thread thread, long timeout) throws InterruptedException
      この時間単位を使用して、時間指定されたThread.joinを実行します。 このメソッドは、time引数をThread.joinメソッドで要求される形式に変換する簡易メソッドです。
      パラメータ:
      thread - 待機するスレッド
      timeout - 待機する最長時間。 ゼロまたはそれより小さい場合は待機しない。
      スロー:
      InterruptedException - 待機中に割込みが発生した場合
    • sleep

      public void sleep(long timeout) throws InterruptedException
      この時間単位を使用して、Thread.sleepを実行します。 これは、time引数をThread.sleepメソッドで要求される形式に変換する簡易メソッドです。
      パラメータ:
      timeout - スリープする最小時間。 ゼロまたはそれより小さい場合はスリープしない。
      スロー:
      InterruptedException - スリープ中に割込みが発生した場合
    • toChronoUnit

      public ChronoUnit toChronoUnit()
      このTimeUnitを同等のChronoUnitに変換します。
      戻り値:
      変換された同等のChronoUnit
      導入されたバージョン:
      9
    • of

      public static TimeUnit of(ChronoUnit chronoUnit)
      ChronoUnitを同等のTimeUnitに変換します。
      パラメータ:
      chronoUnit - 変換するChronoUnit
      戻り値:
      変換された同等のTimeUnit
      スロー:
      IllegalArgumentException - chronoUnitに相当するTimeUnitがない場合
      NullPointerException - chronoUnitがnullの場合
      導入されたバージョン:
      9