public enum ChronoUnit extends Enum<ChronoUnit> implements TemporalUnit
この単位セットは、日付、時間、または日付/時間を操作するための単位ベースのアクセスを提供します。標準の単位セットは、TemporalUnit
を実装することによって拡張できます。
これらの単位は、複数の暦体系に適用できると想定されています。たとえば、ISO以外の暦体系の多くは、ルールは多少異なっても、年、月、および日の単位を定義しています。各単位のドキュメントには、その単位の動作が説明されています。
列挙型定数と説明 |
---|
CENTURIES
1世紀の概念を表す単位。
|
DAYS
1日の概念を表す単位。
|
DECADES
1デケイドの概念を表す単位。
|
ERAS
1紀元の概念を表す単位。
|
FOREVER
永遠の概念を表す人為的単位。
|
HALF_DAYS
午前/午後で使用される半日の概念を表す単位。
|
HOURS
1時間の概念を表す単位。
|
MICROS
1マイクロ秒の概念を表す単位。
|
MILLENNIA
1ミレニアムの概念を表す単位。
|
MILLIS
1ミリ秒の概念を表す単位。
|
MINUTES
1分の概念を表す単位。
|
MONTHS
1か月の概念を表す単位。
|
NANOS
1ナノ秒の概念を表す単位。サポートされている最小の時間単位。
|
SECONDS
1秒の概念を表す単位。
|
WEEKS
1週の概念を表す単位。
|
YEARS
1年の概念を表す単位。
|
修飾子と型 | メソッドと説明 |
---|---|
<R extends Temporal> |
addTo(R temporal, long amount)
指定された期間を加算して、指定された時間的オブジェクトのコピーを返します。
|
long |
between(Temporal temporal1Inclusive, Temporal temporal2Exclusive)
2つの時間的オブジェクトの間の時間量を計算します。
|
Duration |
getDuration()
ISO暦体系におけるこの単位の推定デュレーションを取得します。
|
boolean |
isDateBased()
この単位が日付の単位かどうかをチェックします。
|
boolean |
isDurationEstimated()
単位のデュレーションが推定値かどうかをチェックします。
|
boolean |
isSupportedBy(Temporal temporal)
指定された時間的オブジェクトでこの単位がサポートされているかどうかを確認します。
|
boolean |
isTimeBased()
この単位が時間の単位かどうかをチェックします。
|
String |
toString()
宣言に含まれるとおりのenum定数の名前を返します。
|
static ChronoUnit |
valueOf(String name)
指定された名前を持つ、この型の列挙型定数を返します。
|
static ChronoUnit[] |
values()
この列挙型の定数を含む配列を、宣言されている順序で返します。
|
public static final ChronoUnit NANOS
public static final ChronoUnit MICROS
public static final ChronoUnit MILLIS
public static final ChronoUnit SECONDS
public static final ChronoUnit MINUTES
public static final ChronoUnit HOURS
public static final ChronoUnit HALF_DAYS
public static final ChronoUnit DAYS
24時間
です。
他の暦体系で使用される場合、これは地球上の日の出と日の入りによって定義される日に対応する必要があります。日が深夜零時に始まる必要はありません。暦体系の間の変換では、日付は正午において等価になるべきです。
public static final ChronoUnit WEEKS
他の暦体系で使用される場合、これは整数の日数に対応する必要があります。
public static final ChronoUnit MONTHS
365.2425日
の12分の1です。
他の暦体系で使用される場合、これは整数の日数に対応する必要があります。
public static final ChronoUnit YEARS
365.2425日
です。
他の暦体系で使用される場合、これは太陽を中心とした地球の周回によって定義される1年にほぼ等しい、整数の日数または月数に対応する必要があります。
public static final ChronoUnit DECADES
他の暦体系で使用される場合、これは整数の日数に対応する必要があり、通常は整数の年数です。
public static final ChronoUnit CENTURIES
他の暦体系で使用される場合、これは整数の日数に対応する必要があり、通常は整数の年数です。
public static final ChronoUnit MILLENNIA
他の暦体系で使用される場合、これは整数の日数に対応する必要があり、通常は整数の年数です。
public static final ChronoUnit ERAS
1,000,000,000年
として人為的に定義されています。
他の暦体系で使用される場合、この単位に制約はありません。
public static final ChronoUnit FOREVER
TemporalField
とともに使用され、年や紀元のような無制限のフィールドを表します。紀元の推定デュレーションは、Duration
でサポートされている最大のデュレーションとして人為的に定義されています。public static ChronoUnit[] values()
for (ChronoUnit c : ChronoUnit.values()) System.out.println(c);
public static ChronoUnit valueOf(String name)
name
- 返される列挙型定数の名前。IllegalArgumentException
- 指定された名前を持つ定数をこの列挙型が持っていない場合NullPointerException
- 引数がnullの場合public Duration getDuration()
このクラスの単位すべてに推定デュレーションがあります。日の長さはサマー・タイムのために変化し、月の長さは様々です。
TemporalUnit
のgetDuration
public boolean isDurationEstimated()
このクラスの時間の単位はすべて正確と見なされ、このクラスの日付の単位はすべて推定と見なされます。
この定義では、うるう秒は無視されますが、日の長さはサマー・タイムのために変化し、月の長さは様々であることが考慮されます。
TemporalUnit
のisDurationEstimated
public boolean isDateBased()
日から紀元まで(これらを含む)の単位は、すべて日付ベースです。時間ベースの単位とFOREVER
からはfalseが返されます。
TemporalUnit
のisDateBased
public boolean isTimeBased()
ナノ秒から半日まで(これらを含む)の単位は、すべて時間ベースです。日付ベースの単位とFOREVER
からはfalseが返されます。
TemporalUnit
のisTimeBased
public boolean isSupportedBy(Temporal temporal)
TemporalUnit
これは、実装側の日付/時間がこの単位を加算/減算できることを確認します。これを使用すると、例外のスローを回避できます。
このデフォルトの実装は、Temporal.plus(long, TemporalUnit)
を使用して値を求めます。
TemporalUnit
のisSupportedBy
temporal
- チェックする時間的オブジェクト。null以外public <R extends Temporal> R addTo(R temporal, long amount)
TemporalUnit
加算される期間はこの単位の倍数です。たとえば、このメソッドを使用して、ある日付に「3日」を加算することができます。それには、「日」を表すインスタンスに対してこのメソッドを呼び出し、日付と期間「3」を渡します。加算する期間は負でもよく、それは減算と等価です。
このメソッドを使用する等価な方法が2つあります。1つ目はこのメソッドを直接呼び出すことです。2つ目はTemporal.plus(long, TemporalUnit)
を使用することです。
// these two lines are equivalent, but the second approach is recommended temporal = thisUnit.addTo(temporal); temporal = temporal.plus(thisUnit);2つ目の方法
plus(TemporalUnit)
の方がコードを読むときにわかりやすいため、これを使用することをお薦めします。
実装では、問合せや計算を実行する場合、ChronoUnit
で使用可能な単位、またはChronoField
で使用可能なフィールドを使用するようにしてください。単位がサポートされていない場合は、UnsupportedTemporalTypeException
をスローする必要があります。
実装では、指定された時間的オブジェクトを変更してはいけません。かわりに、元のオブジェクトの調整済のコピーを返す必要があります。これは、不変および可変の実装に安全で等価な動作を提供します。
TemporalUnit
のaddTo
R
- Temporalオブジェクトの型temporal
- 調整する時間的オブジェクト。null以外amount
- 加算するこの単位の量。正または負public long between(Temporal temporal1Inclusive, Temporal temporal2Exclusive)
TemporalUnit
これは、この単位で量を計算します。開始点と終了点は時間的オブジェクトで指定され、互換性のある型でなければなりません。実装では、2番目の型を最初の型のインスタンスに変換してから、量を計算します。終了が開始より前である場合、結果は負になります。たとえば、2つの時間的オブジェクト間の時間数での量は、HOURS.between(startTime, endTime)
を使用して計算できます。
計算では、2つの時間的オブジェクト間の完全な単位の数を表す整数を返します。たとえば、時間11:30と13:29の間の量は、2時間には1分足りないため、時間数では1時間だけになります。
このメソッドを使用する等価な方法が2つあります。1つ目はこのメソッドを直接呼び出すことです。2つ目はTemporal.until(Temporal, TemporalUnit)
を使用することです。
// these two lines are equivalent between = thisUnit.between(start, end); between = start.until(end, thisUnit);この選択は、コードが読みやすくなるのはどちらかに基づいて行ってください。
たとえば、このメソッドを使用すると、2つの日付間の日数を計算できます。
long daysBetween = DAYS.between(start, end); // or alternatively long daysBetween = start.until(end, DAYS);
実装では、問合せや計算を実行する場合、ChronoUnit
で使用可能な単位、またはChronoField
で使用可能なフィールドを使用するようにしてください。単位がサポートされていない場合は、UnsupportedTemporalTypeException
をスローする必要があります。実装では、指定された時間的オブジェクトを変更してはいけません。
TemporalUnit
のbetween
temporal1Inclusive
- ベースの時間的オブジェクト。null以外temporal2Exclusive
- 他方の時間的オブジェクト(これを含まない)。null以外public String toString()
Enum
TemporalUnit
のtoString
Enum<ChronoUnit>
のtoString
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.