D
- この日付/時間の日付の具象型public interface ChronoZonedDateTime<D extends ChronoLocalDate> extends Temporal, Comparable<ChronoZonedDateTime<?>>
ほとんどのアプリケーションでは、メソッド・シグネチャ、フィールド、および変数をこのインタフェースではなく、ZonedDateTime
として宣言してください。
ChronoZonedDateTime
は、Chronology chronology
または暦体系がプラグイン可能な場合のオフセットの日付/時間の抽象表現です。日付/時間はTemporalField
によって表されるフィールドの形で定義され、ほとんどの一般的な実装がChronoField
に定義されます。暦は暦体系の動作と標準フィールドの意味を定義します。
ZonedDateTime
の使用が推奨されます。この理由については、ChronoLocalDate
で詳しく説明しています。
このインタフェースを使用する前に、ChronoLocalDate
の説明を読み、理解しておいてください。
修飾子と型 | メソッドと説明 |
---|---|
default int |
compareTo(ChronoZonedDateTime<?> other)
暦を含めて、この日付/時間を別の日付/時間と比較します。
|
boolean |
equals(Object obj)
この日付/時間が別の日付/時間と等しいかどうかをチェックします。
|
default String |
format(DateTimeFormatter formatter)
指定されたフォーマッタを使用してこの日付/時間を書式設定します。
|
static ChronoZonedDateTime<?> |
from(TemporalAccessor temporal)
時間的オブジェクトから
ChronoZonedDateTime のインスタンスを取得します。 |
default int |
get(TemporalField field)
指定されたフィールドの値を
int として取得します。 |
default Chronology |
getChronology()
この日付/時間の暦を取得します。
|
default long |
getLong(TemporalField field)
指定されたフィールドの値を
long として取得します。 |
ZoneOffset |
getOffset()
「+01:00」などのゾーン・オフセットを取得します。
|
ZoneId |
getZone()
「Europe/Paris」などのゾーンIDを取得します。
|
int |
hashCode()
この日付/時間のハッシュ・コード。
|
default boolean |
isAfter(ChronoZonedDateTime<?> other)
この日付/時間のインスタントが、指定された日付/時間のインスタントより後であるかどうかをチェックします。
|
default boolean |
isBefore(ChronoZonedDateTime<?> other)
この日付/時間のインスタントが、指定された日付/時間のインスタントより前であるかどうかをチェックします。
|
default boolean |
isEqual(ChronoZonedDateTime<?> other)
この日付/時間のインスタントが、指定された日付/時間のインスタントと等しいかどうかをチェックします。
|
boolean |
isSupported(TemporalField field)
指定されたフィールドがサポートされているかどうかをチェックします。
|
default boolean |
isSupported(TemporalUnit unit)
指定された単位がサポートされているかどうかをチェックします。
|
default ChronoZonedDateTime<D> |
minus(long amountToSubtract, TemporalUnit unit)
指定された期間を減算して、このオブジェクトと同じ型のオブジェクトを返します。
|
default ChronoZonedDateTime<D> |
minus(TemporalAmount amount)
量を減算して、このオブジェクトと同じ型のオブジェクトを返します。
|
ChronoZonedDateTime<D> |
plus(long amountToAdd, TemporalUnit unit)
このオブジェクトと同じ型のオブジェクトに指定された期間を追加したものを返します。
|
default ChronoZonedDateTime<D> |
plus(TemporalAmount amount)
このオブジェクトと同じ型のオブジェクトにある時間を追加したものを返します。
|
default <R> R |
query(TemporalQuery<R> query)
指定された問合せを使用してこの日付/時間を問い合わせます。
|
default ValueRange |
range(TemporalField field)
指定されたフィールドの有効な値の範囲を取得します。
|
static Comparator<ChronoZonedDateTime<?>> |
timeLineOrder()
暦を無視して時系列順に
ChronoZonedDateTime を比較するコンパレータを取得します。 |
default long |
toEpochSecond()
この日付/時間を、エポック(1970-01-01T00:00:00Z)からの秒数に変換します。
|
default Instant |
toInstant()
この日付/時間を
Instant に変換します。 |
default D |
toLocalDate()
この日付/時間のローカル日付部分を取得します。
|
ChronoLocalDateTime<D> |
toLocalDateTime()
この日付/時間のローカルの日付/時間部分を取得します。
|
default LocalTime |
toLocalTime()
この日付/時間のローカル・タイム部分を取得します。
|
String |
toString()
この日付/時間を
String として出力します。 |
default ChronoZonedDateTime<D> |
with(TemporalAdjuster adjuster)
調整を行って、このオブジェクトと同じ型の調整済のオブジェクトを返します。
|
ChronoZonedDateTime<D> |
with(TemporalField field, long newValue)
指定されたフィールドを変更して、このオブジェクトと同じ型のオブジェクトを返します。
|
ChronoZonedDateTime<D> |
withEarlierOffsetAtOverlap()
ゾーン・オフセットを、ローカル時系列のオーバーラップ時における2つの有効なオフセットのうちの早い方に変更して、この日付/時間のコピーを返します。
|
ChronoZonedDateTime<D> |
withLaterOffsetAtOverlap()
ゾーン・オフセットを、ローカル時系列のオーバーラップ時における2つの有効なオフセットのうちの遅い方に変更して、この日付/時間のコピーを返します。
|
ChronoZonedDateTime<D> |
withZoneSameInstant(ZoneId zone)
インスタントを保持したまま、別のタイムゾーンを使ってこの日付/時間のコピーを返します。
|
ChronoZonedDateTime<D> |
withZoneSameLocal(ZoneId zone)
可能であればローカルの日付/時間を保持したまま、別のタイムゾーンを使ってこのZonedDateTimeのコピーを返します。
|
static Comparator<ChronoZonedDateTime<?>> timeLineOrder()
ChronoZonedDateTime
を比較するコンパレータを取得します。
このコンパレータは、基礎となるインスタントのみを比較し、暦を比較しない点で、compareTo(java.time.chrono.ChronoZonedDateTime<?>)
での比較と異なります。これにより、異なる暦体系の日付を、そのインスタントの時系列の日付/時間の位置に基づいて比較できます。基礎となる比較は、エポック秒と日のナノ秒の比較と同等です。
isAfter(java.time.chrono.ChronoZonedDateTime<?>)
, isBefore(java.time.chrono.ChronoZonedDateTime<?>)
, isEqual(java.time.chrono.ChronoZonedDateTime<?>)
static ChronoZonedDateTime<?> from(TemporalAccessor temporal)
ChronoZonedDateTime
のインスタンスを取得します。
これは、指定された時間的オブジェクトに基づいてゾーン付きの日付/時間を作成します。TemporalAccessor
は任意の日付と時間情報のセットを表し、このファクトリがChronoZonedDateTime
のインスタンスに変換します。
変換では、時間的オブジェクトから暦、日付、時間、ゾーンを抽出し、組み合わせます。この動作は、抽出された暦でChronology.zonedDateTime(TemporalAccessor)
を使用する場合と同等です。実装では、関連オブジェクトと同等のそれらのフィールドにアクセスするなどの最適化を実行することが許可されます。
このメソッドは関数型インタフェースTemporalQuery
のシグネチャに一致するため、メソッド参照ChronoZonedDateTime::from
を介して、問合せとして使用できます。
temporal
- 変換する一時オブジェクト、null以外DateTimeException
- ChronoZonedDateTime
に変換できない場合Chronology.zonedDateTime(TemporalAccessor)
default ValueRange range(TemporalField field)
TemporalAccessor
すべてのフィールドはlong
整数で表現できます。このメソッドは、その値の有効範囲を記述するオブジェクトを返します。この時間的オブジェクトの値は、返される範囲の精度を向上するために使われます。フィールドがサポートされていないか、他の何らかの理由で、日付/時間で範囲を返すことができない場合、例外がスローされます。
結果は有効な最小値と最大値を記述しているだけなので、それらを深く解釈しすぎないことが重要です。たとえば、範囲内の値であっても、フィールドに対して無効な場合があります。
TemporalAccessor
のrange
field
- 範囲を問い合わせるフィールド、null以外default int get(TemporalField field)
TemporalAccessor
int
として取得します。
これは、指定されたフィールドの値の日付/時間を問い合わせます。返される値は常にフィールドの値の有効な範囲内になります。フィールドがサポートされていないか、他の何らかの理由で、日付/時間で値を返すことができない場合、例外がスローされます。
TemporalAccessor
のget
field
- 取得するフィールド、null以外default long getLong(TemporalField field)
TemporalAccessor
long
として取得します。
これは、指定されたフィールドの値の日付/時間を問い合わせます。返される値はフィールドに有効な値の範囲外になることがあります。フィールドがサポートされていないか、他の何らかの理由で、日付/時間で値を返すことができない場合、例外がスローされます。
TemporalAccessor
のgetLong
field
- 取得するフィールド、null以外default D toLocalDate()
これは、この日付/時間と同じ年、月、および日のローカル日付を返します。
default LocalTime toLocalTime()
これは、この日付/時間と同じ時間、分、秒、およびナノ秒のローカル・タイムを返します。
ChronoLocalDateTime<D> toLocalDateTime()
これは、この日付/時間と同じ年、月、および日のローカル日付を返します。
default Chronology getChronology()
Chronology
は使用中の暦体系を表します。ChronoField
の紀元およびその他のフィールドは暦によって定義されます。
ZoneOffset getOffset()
これはUTC/グリニッジからのローカル日付/時間のオフセットです。
ZoneId getZone()
これはタイムゾーン・ルールの決定に使用される保存されたタイムゾーンIDを返します。
ChronoZonedDateTime<D> withEarlierOffsetAtOverlap()
このメソッドは、秋の夏時間の切換え時など、ローカル時系列の重複時にのみ何らかの影響があります。このシナリオでは、ローカル日付/時間に2つの有効なオフセットがあります。このメソッドを呼び出すと、2つのうちの早い方が選択されて、ゾーン付きの日付/時間を返します。
このメソッドが、重複していない場合に呼び出された場合、this
が返されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
ZoneChronoDateTime
、null以外DateTimeException
- ゾーンのルールが見つからない場合DateTimeException
- この日付/時間で有効なルールがない場合ChronoZonedDateTime<D> withLaterOffsetAtOverlap()
このメソッドは、秋の夏時間の切換え時など、ローカル時系列の重複時にのみ何らかの影響があります。このシナリオでは、ローカル日付/時間に2つの有効なオフセットがあります。このメソッドを呼び出すと、2つのうちの遅い方が選択されて、ゾーン付きの日付/時間を返します。
このメソッドが、重複していない場合に呼び出された場合、this
が返されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
ChronoZonedDateTime
、null以外DateTimeException
- ゾーンのルールが見つからない場合DateTimeException
- この日付/時間で有効なルールがない場合ChronoZonedDateTime<D> withZoneSameLocal(ZoneId zone)
このメソッドはタイムゾーンを変更し、ローカル日付/時間を保持します。ローカル日付/時間は、それが新しいゾーンで無効な場合にのみ変更されます。
ソーンを変更し、ローカル日付/時間を調整するには、withZoneSameInstant(ZoneId)
を使用します。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
zone
- 変更先のタイムゾーン、null以外ChronoZonedDateTime
、null以外ChronoZonedDateTime<D> withZoneSameInstant(ZoneId zone)
このメソッドはタイムゾーンを変更し、インスタントを保持します。これは通常ローカル日付/時間に変更されます。
このメソッドは、同じインスタントを保持することに基づくため、ローカル時系列のギャップと重複は結果に影響しません。
ローカル時間を維持しながら、オフセットを変更するには、withZoneSameLocal(ZoneId)
を使用します。
zone
- 変更先のタイムゾーン、null以外ChronoZonedDateTime
、null以外DateTimeException
- 結果がサポートされている日付範囲を超える場合boolean isSupported(TemporalField field)
これは、指定されたフィールドをこの日付/時間で問い合わせできるかどうかをチェックします。falseの場合、range
、get
、およびwith(TemporalField, long)
メソッドの呼び出しは、例外をスローします。
一連のサポートされるフィールドは、暦によって定義され、通常すべてのChronoField
フィールドを含みます。
フィールドがChronoField
でない場合、このメソッドの結果は、this
を引数として渡してTemporalField.isSupportedBy(TemporalAccessor)
を呼び出すことによって取得します。フィールドがサポートされているかどうかはフィールドによって決定します。
TemporalAccessor
のisSupported
field
- チェックするフィールド、nullはfalseを返すdefault boolean isSupported(TemporalUnit unit)
これは、指定された単位をこの日付/時間に加算または減算できるかどうかをチェックします。falseの場合、plus(long, TemporalUnit)
およびminus
メソッドの呼び出しは、例外をスローします。
一連のサポートされる単位は、暦によって定義され、通常、FOREVER
を除くすべてのChronoUnit
単位を含みます。
単位がChronoUnit
でない場合、このメソッドの結果は、this
を引数として渡してTemporalUnit.isSupportedBy(Temporal)
を呼び出すことによって取得します。単位がサポートされているかどうかは単位によって決定します。
Temporal
のisSupported
unit
- チェックする単位、nullはfalseを返すdefault ChronoZonedDateTime<D> with(TemporalAdjuster adjuster)
これは、指定されたアジャスタのルールに従って、この日付/時間を調整します。単純なアジャスタは、年フィールドなどの1つのフィールドだけを設定するなどです。複雑なアジャスタは、日付を月の最後の日に設定するなどです。一般的な調整の選択は、TemporalAdjuster
で指定します。これらには、「月の最後の日」や「次の水曜日」を見つけることが含まれます。アジャスタは、さまざまな長さの月やうるう年などの特別なケースの処理を担当します。
このメソッドを使用する方法と理由を示すいくつかのサンプル・コード:
date = date.with(Month.JULY); // most key classes implement TemporalAdjuster date = date.with(lastDayOfMonth()); // static import from Adjusters date = date.with(next(WEDNESDAY)); // static import from Adjusters and DayOfWeek
Temporal
のwith
adjuster
- 使用するアジャスタ、null以外DateTimeException
- 調整を実行できない場合ArithmeticException
- 数値のオーバーフローが発生した場合ChronoZonedDateTime<D> with(TemporalField field, long newValue)
これは、指定されたフィールドの値を変更して、このオブジェクトに基づいて新しいオブジェクトを返します。たとえば、LocalDate
で、これは年、月、または「月の日」を設定するために使用できます。返されるオブジェクトはこのオブジェクトと同じ識別可能な型を持ちます。
フィールドの変更が完全には定義されていない場合もあります。たとえば、ターゲット・オブジェクトが1月31日を表す日付である場合、月を2月に変更することは不明な場合があります。このようなケースでは、フィールドは結果の解決を担当します。通常は1つ前の有効な日付が選択され、この例の場合は2月の最後の有効な日になります。
Temporal
のwith
field
- 結果に設定するフィールド、null以外newValue
- 結果のフィールドの新しい値DateTimeException
- フィールドを設定できない場合ArithmeticException
- 数値のオーバーフローが発生した場合default ChronoZonedDateTime<D> plus(TemporalAmount amount)
これは、このtemporal (一時)を調整し、指定された量のルールに従って加算します。この量は通常Period
ですが、Duration
など、TemporalAmount
インタフェースを実装する他のどの型であってもかまいません。
このメソッドを使用する方法と理由を示すいくつかのサンプル・コード:
date = date.plus(period); // add a Period instance date = date.plus(duration); // add a Duration instance date = date.plus(workingDays(6)); // example user-written workingDays method
plus
の後にminus
を呼び出しても、同じ日付/時間が返されることは保証されません。
Temporal
のplus
amount
- 追加する量、null以外DateTimeException
- 加算できない場合ArithmeticException
- 数値のオーバーフローが発生した場合ChronoZonedDateTime<D> plus(long amountToAdd, TemporalUnit unit)
このメソッドは、指定された期間を加算して、このオブジェクトに基づいて新しいオブジェクトを返します。たとえば、LocalDate
で、これは年、月、または日の数を加算するために使用できます。返されるオブジェクトはこのオブジェクトと同じ識別可能な型を持ちます。
フィールドの変更が完全には定義されていない場合もあります。たとえば、ターゲット・オブジェクトが1月31日を表す日付である場合、1か月を加算することは不明な場合があります。このようなケースでは、フィールドは結果の解決を担当します。通常は1つ前の有効な日付が選択され、この例の場合は2月の最後の有効な日になります。
Temporal
のplus
amountToAdd
- 加算する指定された単位の量、負の場合もあるunit
- 追加する期間の単位、null以外DateTimeException
- 単位を加算できない場合ArithmeticException
- 数値のオーバーフローが発生した場合default ChronoZonedDateTime<D> minus(TemporalAmount amount)
これは、このtemporal (一時)を調整し、指定された量のルールに従って減算します。この量は通常Period
ですが、Duration
など、TemporalAmount
インタフェースを実装する他のどの型であってもかまいません。
このメソッドを使用する方法と理由を示すいくつかのサンプル・コード:
date = date.minus(period); // subtract a Period instance date = date.minus(duration); // subtract a Duration instance date = date.minus(workingDays(6)); // example user-written workingDays method
plus
の後にminus
を呼び出しても、同じ日付/時間が返されることは保証されません。
Temporal
のminus
amount
- 減算する量、null以外DateTimeException
- 減算ができない場合ArithmeticException
- 数値のオーバーフローが発生した場合default ChronoZonedDateTime<D> minus(long amountToSubtract, TemporalUnit unit)
このメソッドは、指定された期間を減算して、このオブジェクトに基づいて新しいオブジェクトを返します。たとえば、LocalDate
で、これは年、月、または日の数を減算するために使用できます。返されるオブジェクトはこのオブジェクトと同じ識別可能な型を持ちます。
フィールドの変更が完全には定義されていない場合もあります。たとえば、ターゲットオブジェクトが3月31日を表す日付である場合、1か月を減算することは不明な場合があります。このようなケースでは、フィールドは結果の解決を担当します。通常は1つ前の有効な日付が選択され、この例の場合は2月の最後の有効な日になります。
Temporal
のminus
amountToSubtract
- 減算する指定された単位の量、負の場合もあるunit
- 減算する期間の単位、null以外DateTimeException
- 単位を減算できない場合ArithmeticException
- 数値のオーバーフローが発生した場合default <R> R query(TemporalQuery<R> query)
これは指定された問合せ方法オブジェクトを使用してこの日付/時間を問い合わせます。TemporalQuery
オブジェクトは結果を取得するために使用するロジックを定義します。このメソッドの結果を理解するには、問合せのドキュメントをお読みください。
このメソッドの結果は、this
を引数として渡して、指定した問合せでTemporalQuery.queryFrom(TemporalAccessor)
メソッドを呼び出すことによって取得します。
TemporalAccessor
のquery
R
- 結果の型query
- 呼び出す問合せ、null以外DateTimeException
- 問い合わせできない場合(問合せによって定義される)ArithmeticException
- 数値のオーバーフローが発生した場合(問合せによって定義される)default String format(DateTimeFormatter formatter)
この日付/時間はフォーマッタに渡され、文字列が生成されます。
デフォルトの実装は次のように動作する必要があります。
return formatter.format(this);
formatter
- 使用するフォーマッタ、null以外DateTimeException
- 出力時にエラーが発生した場合default Instant toInstant()
Instant
、null以外default long toEpochSecond()
これは、ローカル日付/時間とオフセットを使用して、1970-01-01T00:00:00Zから経過した秒数であるエポック秒の値を計算します。エポックより後の時系列上のインスタントは正で、それより前は負になります。
default int compareTo(ChronoZonedDateTime<?> other)
比較は、まずインスタントに基づき、次にローカル日付/時間、次にゾーンID、次に暦に基づきます。Comparable
に定義されているとおりに、「equalsと一致」しています。
比較対象のすべての日付/時間オブジェクトが同じ暦にある場合、追加の暦ステージは必要ありません。
このデフォルトの実装は、上で定義されている比較を実行します。
Comparable<ChronoZonedDateTime<?>>
のcompareTo
other
- 他の比較する日付/時間、null以外default boolean isBefore(ChronoZonedDateTime<?> other)
このメソッドは、日付/時間のインスタントのみを比較する点で、compareTo(java.time.chrono.ChronoZonedDateTime<?>)
での比較と異なります。これは、dateTime1.toInstant().isBefore(dateTime2.toInstant());
を使用する場合と同等です。
このデフォルトの実装は、エポック秒と日のナノ秒に基づいて比較を実行します。
other
- 他の比較する日付/時間、null以外default boolean isAfter(ChronoZonedDateTime<?> other)
このメソッドは、日付/時間のインスタントのみを比較する点で、compareTo(java.time.chrono.ChronoZonedDateTime<?>)
での比較と異なります。これは、dateTime1.toInstant().isAfter(dateTime2.toInstant());
を使用する場合と同等です。
このデフォルトの実装は、エポック秒と日のナノ秒に基づいて比較を実行します。
other
- 他の比較する日付/時間、null以外default boolean isEqual(ChronoZonedDateTime<?> other)
このメソッドは、日付/時間のインスタントのみを比較する点で、compareTo(java.time.chrono.ChronoZonedDateTime<?>)
およびequals(java.lang.Object)
での比較と異なります。これは、dateTime1.toInstant().equals(dateTime2.toInstant());
を使用する場合と同等です。
このデフォルトの実装は、エポック秒と日のナノ秒に基づいて比較を実行します。
other
- 他の比較する日付/時間、null以外boolean equals(Object obj)
比較はオフセットの日付/時間とゾーンに基づきます。時系列上の同じインスタントに対して比較するには、compareTo(java.time.chrono.ChronoZonedDateTime<?>)
を使用します。ChronoZonedDateTime
型のオブジェクトのみが比較され、それ以外の型はfalseを返します。
equals
、クラス: Object
obj
- チェックするオブジェクト、nullはfalseを返すObject.hashCode()
、HashMap
int hashCode()
hashCode
、クラス: Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.