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
-
ネストされたクラスのサマリー
-
列挙型定数のサマリー
列挙型定数 列挙型定数 説明 DAYS
24時間を表す時間単位HOURS
60分を表す時間単位MICROSECONDS
ミリ秒の1000分の1を表す時間単位MILLISECONDS
秒の1000分の1を表す時間単位MINUTES
60秒を表す時間単位NANOSECONDS
マイクロ秒の1000分の1を表す時間単位SECONDS
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
を実行します。ChronoUnit
toChronoUnit()
この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
valueOf(String name)
指定された名前を持つ、この型の列挙型定数を返します。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
指定された名前を持つ、この型の列挙型定数を返します。 文字列は、この型の列挙型定数を宣言するのに使用した識別子と厳密に一致している必要があります。 (不適切な空白文字は許可されません。)- パラメータ:
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
-