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()
合計ゾーン・オフセットIDを秒で取得します。
|
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、systemDefault
public 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
のisSupported
field
- チェックするフィールド、nullはfalseを返すpublic ValueRange range(TemporalField field)
範囲オブジェクトはフィールドの有効な最小値と最大値を表します。このオフセットは、返される範囲の精度を上げるために使用されます。範囲を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドがChronoField
の場合、ここに問合せを実装します。サポートされるフィールド
は適切な範囲のインスタンスを返します。他のすべてのChronoField
インスタンスはUnsupportedTemporalTypeException
をスローします。
フィールドがChronoField
ではない場合、このメソッドの結果は、引数としてthis
を渡してTemporalField.rangeRefinedBy(TemporalAccessor)
を呼び出すことにより取得されます。範囲を取得できるかどうかはフィールドによって決まります。
TemporalAccessor
のrange
field
- 範囲を問い合わせるフィールド、null以外DateTimeException
- フィールドの範囲を取得できない場合UnsupportedTemporalTypeException
- フィールドがサポートされていない場合public int get(TemporalField field)
int
として取得します。
これは、指定されたフィールドの値についてこのオフセットを照会します。返される値は常にフィールドの値の有効な範囲内になります。値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドがChronoField
の場合、ここに問合せを実装します。OFFSET_SECONDS
フィールドはオフセットの値を返します。他のすべてのChronoField
インスタンスはUnsupportedTemporalTypeException
をスローします。
フィールドがChronoField
ではない場合、このメソッドの結果は、引数としてthis
を渡してTemporalField.getFrom(TemporalAccessor)
を呼び出すことにより取得されます。値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。
TemporalAccessor
のget
field
- 取得するフィールド、null以外DateTimeException
- フィールドの値を取得できない場合、または値がフィールドの有効な値の範囲外の場合UnsupportedTemporalTypeException
- フィールドがサポートされていない場合、または値の範囲がint
を超えている場合ArithmeticException
- 数値のオーバーフローが発生した場合public long getLong(TemporalField field)
long
として取得します。
これは、指定されたフィールドの値についてこのオフセットを照会します。値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドがChronoField
の場合、ここに問合せを実装します。OFFSET_SECONDS
フィールドはオフセットの値を返します。他のすべてのChronoField
インスタンスはUnsupportedTemporalTypeException
をスローします。
フィールドがChronoField
ではない場合、このメソッドの結果は、引数としてthis
を渡してTemporalField.getFrom(TemporalAccessor)
を呼び出すことにより取得されます。値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。
TemporalAccessor
のgetLong
field
- 取得するフィールド、null以外DateTimeException
- フィールドの値を取得できない場合UnsupportedTemporalTypeException
- フィールドがサポートされていない場合ArithmeticException
- 数値のオーバーフローが発生した場合public <R> R query(TemporalQuery<R> query)
これは、指定された問合せ戦略オブジェクトを使用して、このオフセットを照会します。TemporalQuery
オブジェクトは結果を取得するために使用するロジックを定義します。このメソッドの結果を理解するには、問合せのドキュメントをお読みください。
このメソッドの結果は、this
を引数として渡して、指定した問合せでTemporalQuery.queryFrom(TemporalAccessor)
メソッドを呼び出すことによって取得します。
TemporalAccessor
のquery
R
- 結果の型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
のadjustInto
temporal
- 調整するターゲット・オブジェクト、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
、クラス: ZoneId
obj
- チェックするオブジェクト、nullはfalseを返すObject.hashCode()
、HashMap
public int hashCode()
hashCode
、クラス: ZoneId
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.