java.lang.Object
java.lang.Enum<TimeUnit>
java.util.concurrent.TimeUnit
- すべての実装されたインタフェース:
Serializable,Comparable<TimeUnit>,Constable
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
-
ネストされたクラスのサマリー
クラスjava.lang.Enumで宣言されたネストされたクラス/インタフェース
Enum.EnumDesc<E extends Enum<E>> -
列挙型定数のサマリー
列挙型定数列挙型定数説明24時間を表す時間単位60分を表す時間単位ミリ秒の1000分の1を表す時間単位秒の1000分の1を表す時間単位60秒を表す時間単位マイクロ秒の1000分の1を表す時間単位1秒を表す時間単位 -
メソッドのサマリー
修飾子と型メソッド説明long指定された単位による指定されたデュレーションを、この単位に変換します。long指定された期間をこの単位に変換します。static TimeUnitof(ChronoUnit chronoUnit) ChronoUnitを同等のTimeUnitに変換します。voidsleep(long timeout) この時間単位を使用して、Thread.sleepを実行します。voidこの時間単位を使用して、時間指定されたThread.joinを実行します。voidこの時間単位を使用して、時間指定されたObject.waitを実行します。このTimeUnitを同等のChronoUnitに変換します。longtoDays(long duration) longtoHours(long duration) longtoMicros(long duration) longtoMillis(long duration) longtoMinutes(long duration) longtoNanos(long duration) longtoSeconds(long duration) static TimeUnit指定された名前を持つこのクラスのenum定数を返します。static TimeUnit[]values()この列挙クラスの定数を含む配列を宣言されている順序で 返します。
-
列挙型定数の詳細
-
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 SECONDS1秒を表す時間単位 -
MINUTES
public static final TimeUnit MINUTES60秒を表す時間単位- 導入されたバージョン:
- 1.6
-
HOURS
public static final TimeUnit HOURS60分を表す時間単位- 導入されたバージョン:
- 1.6
-
DAYS
public static final TimeUnit DAYS24時間を表す時間単位- 導入されたバージョン:
- 1.6
-
-
メソッドの詳細
-
values
public static TimeUnit[] values()この列挙クラスの定数を含む配列を宣言されている順序で 返します。- 戻り値:
- この列挙クラスの定数を宣言されている順序で含む配列
-
valueOf
指定された名前を持つこのクラスの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- 待機する最長時間。 ゼロまたはそれより小さい場合は待機しない。- スロー:
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
-