public final class ZoneOffset extends ZoneId implements TemporalAccessor, TemporalAdjuster, Comparable<ZoneOffset>, Serializable
+02:00など)。
 タイムゾーン・オフセットは、タイムゾーンがグリニッジ/UTCと異なる期間です。 これは通常、時と分からなる固定の数値です。
 タイムゾーン・オフセットは世界の地域ごとに異なります。 場所や時期によってオフセットがどう変わるかについてのルールは、ZoneIdクラスで返されます。 
 
 たとえば、パリは、冬にはグリニッジ/UTCから1時間進み、夏には2時間進みます。 パリのZoneIdインスタンスは2つのZoneOffsetインスタンス(冬は+01:00インスタンス、夏は+02:00インスタンス)を参照します。 
 
2008年に、世界中のタイムゾーン・オフセットが-12:00から+14:00までに拡張されました。 範囲が拡張されることに関する問題を回避し、さらに検証を提供するために、オフセットの範囲は-18:00から18:00までに制限されています。
このクラスはISO暦体系で使用するように設計されています。 時間、分および秒のフィールドは、それらの標準ISO定義に対して有効であることを前提としています。 このクラスは、時間フィールドの定義がISO暦体系のものと一致する場合には、他の暦体系で使用できます。
 ZoneOffsetのインスタンスは、equals(java.lang.Object)を使用して比較される必要があります。 実装は一部の共通オフセットをキャッシュすることを選択できますが、アプリケーションはそのようなキャッシュに依存してはいけません。 
 
 これは値ベースのクラスなので、ID依存操作(参照等価性(==)、IDハッシュ・コード、同期など)をZoneOffsetのインスタンスで使用することは、予期できない結果になる可能性があり、避けてください。 比較する場合は、equalsメソッドを使用することをお薦めします。 
| 修飾子と型 | フィールド | 説明 | 
|---|---|---|
| static ZoneOffset | MAX | サポートされる最大オフセットの定数です。 | 
| static ZoneOffset | MIN | サポートされる最大オフセットの定数です。 | 
| static ZoneOffset | UTC | UTC用のタイムゾーン・オフセット(IDがZ)。 | 
| 修飾子と型 | メソッド | 説明 | 
|---|---|---|
| Temporal | adjustInto(Temporal temporal) | 指定された時間的オブジェクトをこのオブジェクトと同じオフセットになるように調整します。 | 
| int | compareTo(ZoneOffset other) | このオフセットを別のオフセットと降順で比較します。 | 
| boolean | equals(Object obj) | このオフセットが別のオフセットと等しいかどうかをチェックします。 | 
| static ZoneOffset | from(TemporalAccessor temporal) | 時間的オブジェクトから ZoneOffsetのインスタンスを取得します。 | 
| int | get(TemporalField field) | このオフセットから指定されたフィールドの値を intとして取得します。 | 
| String | getId() | 正規化されたゾーン・オフセットIDを取得します。 | 
| long | getLong(TemporalField field) | このオフセットから指定されたフィールドの値を longとして取得します。 | 
| ZoneRules | getRules() | 関連付けられたタイムゾーン・ルールを取得します。 | 
| int | getTotalSeconds() | 合計ゾーン・オフセットを秒で取得します。 | 
| int | hashCode() | このオフセットのハッシュ・コード。 | 
| boolean | isSupported(TemporalField field) | 指定されたフィールドがサポートされているかどうかをチェックします。 | 
| static ZoneOffset | of(String offsetId) | IDを使用して ZoneOffsetのインスタンスを取得します。 | 
| static ZoneOffset | ofHours(int hours) | オフセット(時)を使用して ZoneOffsetのインスタンスを取得します。 | 
| static ZoneOffset | ofHoursMinutes(int hours, int minutes) | オフセット(時と分)を使用して ZoneOffsetのインスタンスを取得します。 | 
| static ZoneOffset | ofHoursMinutesSeconds(int hours, int minutes, int seconds) | オフセット(時、分および秒)を使用して ZoneOffsetのインスタンスを取得します。 | 
| static ZoneOffset | ofTotalSeconds(int totalSeconds) | 合計オフセット(秒)を指定して ZoneOffsetのインスタンスを取得します。 | 
| <R> R | query(TemporalQuery<R> query) | 指定された問合せを使用してこのオフセットを問い合せます。 | 
| ValueRange | range(TemporalField field) | 指定されたフィールドの有効な値の範囲を取得します。 | 
| String | toString() | 正規化IDを使用して、このオフセットを Stringとして出力します。 | 
getAvailableZoneIds, getDisplayName, normalized, of, ofOffset, systemDefaultpublic static final ZoneOffset UTC
public static final ZoneOffset MIN
public static final ZoneOffset MAX
public static ZoneOffset of(String offsetId)
ZoneOffsetのインスタンスを取得します。
 
 このメソッドはZoneOffsetの文字列IDを解析してインスタンスを返します。 解析は、getId()によって生成されるすべてのフォーマットと、いくつかの追加フォーマットを受け入れます。 
 
Z - UTC用
 +h
 +hh
 +hh:mm
 -hh:mm
 +hhmm
 -hhmm
 +hh:mm:ss
 -hh:mm:ss
 +hhmmss
 -hhmmss
 
 返されるオフセットのIDは、getId()によって記述されるフォーマットのいずれかに正規化されます。
 
サポートされる最大範囲は+18:00から-18:00(これを含む)です。
offsetId - オフセットID、nullでないDateTimeException - オフセットが無効な場合。public static ZoneOffset ofHours(int hours)
ZoneOffsetのインスタンスを取得します。hours - タイムゾーン・オフセット(時)、-18から+18DateTimeException - オフセットが要求範囲にない場合public static ZoneOffset ofHoursMinutes(int hours, int minutes)
ZoneOffsetのインスタンスを取得します。
 時間および分コンポーネントの記号は一致する必要があります。 つまり、時が負の場合は、分は負またはゼロである必要があります。 時がゼロの場合は、分は正、負またはゼロが許可されます。
hours - タイムゾーン・オフセット(時)、-18から+18minutes - タイムゾーン・オフセット(分)、-0から±59、記号は時と一致DateTimeException - オフセットが要求範囲にない場合public static ZoneOffset ofHoursMinutesSeconds(int hours, int minutes, int seconds)
ZoneOffsetのインスタンスを取得します。
 時、分および秒コンポーネントの記号は一致する必要があります。 つまり、時が負である場合、分と秒は負またはゼロである必要があります。
hours - タイムゾーン・オフセット(時)、-18から+18minutes - タイムゾーン・オフセット(分)、-0から±59、記号は時および秒と一致seconds - タイムゾーン・オフセット(秒)、-0から±59、記号は時および分と一致DateTimeException - オフセットが要求範囲にない場合public static ZoneOffset from(TemporalAccessor temporal)
ZoneOffsetのインスタンスを取得します。
 
 これは、指定された時間的オブジェクトに基づくオフセットを取得します。 TemporalAccessorは日付および時間情報の任意セットを表し、それをこのファクトリがZoneOffsetのインスタンスに変換します。 
 
 TemporalAccessorは日付および時間情報のなんらかの形式を表します。 このファクトリは、任意の時間的オブジェクトをZoneOffsetのインスタンスに変換します。 
 
 変換は、OFFSET_SECONDSフィールドを抽出することに依存する、TemporalQueries.offset()問合せを使用します。
 
 このメソッドは関数型インタフェースTemporalQueryのシグネチャに一致するため、メソッド参照ZoneOffset::fromを介して、問合せとして使用できます。
temporal - 変換する一時オブジェクト、null以外DateTimeException - ZoneOffsetに変換できない場合public static ZoneOffset ofTotalSeconds(int totalSeconds)
ZoneOffsetのインスタンスを取得します。
 
 オフセットは、-18:00から+18:00の範囲(-64800から+64800に対応)内である必要があります。
totalSeconds - 合計タイムゾーン・オフセット(秒)、-64800から+64800DateTimeException - オフセットが要求範囲にない場合public int getTotalSeconds()
これは、オフセット量にアクセスするための主要な方法です。 時、分および秒の各フィールドの合計を、時間に追加できる単一オフセットとして返します。
public String getId()
IDは、オフセット用の標準ISO-8601書式文字列とわずかに異なります。 3つのフォーマットがあります。
Z - UTC用(ISO-8601)
 +hh:mmまたは-hh:mm - 秒がゼロの場合(ISO-8601)
 +hh:mm:ssまたは-hh:mm:ss - 秒がゼロでない場合(非ISO-8601)
 public ZoneRules getRules()
ルールは常に、照会時にこのオフセットを返します。 実装クラスは不変、スレッドセーフ、直列化可能です。
public boolean isSupported(TemporalField field)
 これは、指定されたフィールドについてこのオフセットを照会できるかどうかをチェックします。 falseの場合、rangeメソッドとgetメソッドを呼び出すと例外がスローされます。 
 
 フィールドがChronoFieldの場合、ここに問合せを実装します。 OFFSET_SECONDSフィールドはtrueを返します。 他のすべてのChronoFieldインスタンスはfalseを返します。 
 
 フィールドがChronoFieldでない場合、このメソッドの結果は、thisを引数として渡してTemporalField.isSupportedBy(TemporalAccessor)を呼び出すことによって取得します。 フィールドがサポートされているかどうかはフィールドによって決定します。 
TemporalAccessorのisSupportedfield - チェックするフィールド、nullはfalseを返すpublic ValueRange range(TemporalField field)
範囲オブジェクトはフィールドの有効な最小値と最大値を表します。 このオフセットは、返される範囲の精度を上げるために使用されます。 範囲を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
 フィールドがChronoFieldの場合、ここに問合せを実装します。 サポートされるフィールドは適切な範囲のインスタンスを返します。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。 
 
 フィールドがChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.rangeRefinedBy(TemporalAccessor)を呼び出すことにより取得されます。 範囲を取得できるかどうかはフィールドによって決まります。 
TemporalAccessorのrangefield - 範囲を問い合わせるフィールド、null以外DateTimeException - フィールドの範囲を取得できない場合UnsupportedTemporalTypeException - フィールドがサポートされていない場合public int get(TemporalField field)
intとして取得します。
 これは、指定されたフィールドの値についてこのオフセットに問い合せます。 返される値は常にフィールドの値の有効な範囲内になります。 値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
 フィールドがChronoFieldの場合、ここに問合せを実装します。 OFFSET_SECONDSフィールドはオフセットの値を返します。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。 
 
 フィールドがChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.getFrom(TemporalAccessor)を呼び出すことにより取得されます。 値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。 
TemporalAccessorのgetfield - 取得するフィールド、null以外DateTimeException - フィールドの値を取得できない場合、または値がフィールドの有効な値の範囲外の場合UnsupportedTemporalTypeException - フィールドがサポートされていない場合、または値の範囲がintを超えている場合ArithmeticException - 数値のオーバーフローが発生した場合public long getLong(TemporalField field)
longとして取得します。
 これは、指定されたフィールドの値についてこのオフセットに問い合せます。 値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
 フィールドがChronoFieldの場合、ここに問合せを実装します。 OFFSET_SECONDSフィールドはオフセットの値を返します。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。 
 
 フィールドがChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.getFrom(TemporalAccessor)を呼び出すことにより取得されます。 値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。 
TemporalAccessorのgetLongfield - 取得するフィールド、null以外DateTimeException - フィールドの値を取得できない場合UnsupportedTemporalTypeException - フィールドがサポートされていない場合ArithmeticException - 数値のオーバーフローが発生した場合public <R> R query(TemporalQuery<R> query)
 これは、指定された問合せ戦略オブジェクトを使用して、このオフセットを照会します。 TemporalQueryオブジェクトは結果を取得するために使用するロジックを定義します。 このメソッドの結果を理解するには、問合せのドキュメントをお読みください。 
 
 このメソッドの結果は、thisを引数として渡して、指定した問合せでTemporalQuery.queryFrom(TemporalAccessor)メソッドを呼び出すことによって取得します。
TemporalAccessorのqueryR - 結果の型query - 呼び出す問合せ、null以外DateTimeException - 問い合わせできない場合(問合せによって定義される)ArithmeticException - 数値のオーバーフローが発生した場合(問合せによって定義される)public Temporal adjustInto(Temporal temporal)
これは、オフセットがこれと同じに変更された状態で、入力と同じ観察可能型の時間的オブジェクトを返します。
 調整は、ChronoField.OFFSET_SECONDSをフィールドとして渡してTemporal.with(TemporalField, long)を使用することと同等です。
 
 ほとんどのケースで、Temporal.with(TemporalAdjuster)を使用して、呼び出しパターンを逆にすると明確になります。
 
// these two lines are equivalent, but the second approach is recommended temporal = thisOffset.adjustInto(temporal); temporal = temporal.with(thisOffset);
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
TemporalAdjusterのadjustIntotemporal - 調整するターゲット・オブジェクト、null以外DateTimeException - 調整を実行できない場合ArithmeticException - 数値のオーバーフローが発生した場合public int compareTo(ZoneOffset other)
 オフセットは、世界中の同じ時間に出現する順序で比較されます。 つまり、+10:00のオフセットは、-18:00のオフセットの前に出現します(これが+09:00まで続きます)。 
 
 Comparableで定義されているように、比較はequalsと一致します。
compareTo 、インタフェース Comparable<ZoneOffset>other - 比較する他方の日付、null以外NullPointerException - otherがnullである場合public boolean equals(Object obj)
比較はオフセット量(秒)ベースです。 これはIDによる比較と同等です。
equals、クラスZoneIdobj - チェックするオブジェクト、nullはfalseを返すObject.hashCode()、HashMappublic int hashCode()
hashCode、クラスZoneIdObject.equals(java.lang.Object), System.identityHashCode(java.lang.Object) バグまたは機能を送信 
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。 
 Copyright © 1993, 2025, Oracle and/or its affiliates.  All rights reserved.  Use is subject to license terms.  Documentation Redistribution Policyも参照してください。