モジュール java.base
パッケージ 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は、主に時間ベースのメソッドに対して、指定されたタイミング・パラメータの解釈方法を指示するために使用します。 たとえば、lockが使用できない場合、次のコードは50ミリ秒でタイム・アウトします。

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

    導入されたバージョン:
    1.5
    • 列挙型定数の詳細

      • 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()
        この列挙型の定数を含む配列を、宣言されている順序で返します。 このメソッドは、次のようにして定数を反復するために使用できます。
        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
      • 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
        関連項目:
        Duration.of(long,TemporalUnit)
      • 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 - 待機する最長時間。 ゼロまたはそれより小さい場合は待機しない。
        例外:
        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