public final class ZoneRules extends Object implements Serializable
このルールはタイムゾーンの履歴および将来のすべての遷移をモデル化します。ZoneOffsetTransition
は既知の遷移(通常は履歴)に使用されます。ZoneOffsetTransitionRule
は、アルゴリズムの結果に基づく将来の遷移に使用されます。
ルールはZoneId
を使用してZoneRulesProvider
経由でロードされます。同じルールが複数のゾーンID間で内部的に共有されることがあります。
ZoneRules
のインスタンスを直列化すると、ルール・セット全体が格納されます。ゾーンIDは、このオブジェクトの状態の一部ではないため格納されません。
ルール実装は、履歴および将来の遷移について完全な情報を格納する場合としない場合があります。格納される情報はルール・プロバイダによって実装に提供されるものと同じくらいの正確なもののみです。アプリケーションは提供されたデータを、このルールの実装で使用できる最良な情報を表すものとして処理してください。
修飾子と型 | メソッドと説明 |
---|---|
boolean |
equals(Object otherRules)
このルール・セットが別のものと等しいかどうかを確認します。
|
Duration |
getDaylightSavings(Instant instant)
このゾーンの指定されたインスタントに使用しているサマー・タイムの量を取得します。
|
ZoneOffset |
getOffset(Instant instant)
これらのルールで、指定されたインスタントに適用できるオフセットを取得します。
|
ZoneOffset |
getOffset(LocalDateTime localDateTime)
これらのルールで、指定されたローカル日付/時間に適したオフセットを取得します。
|
ZoneOffset |
getStandardOffset(Instant instant)
このゾーンでの指定されたインスタントの標準オフセットを取得します。
|
ZoneOffsetTransition |
getTransition(LocalDateTime localDateTime)
これらのルールで、指定されたローカル日付/時間に適用できるオフセット遷移を取得します。
|
List<ZoneOffsetTransitionRule> |
getTransitionRules()
遷移リストに定義されているものを超える年数の遷移ルールのリストを取得します。
|
List<DataFlavor> |
getTransitions()
完全に定義された遷移の完全なリストを取得します。
|
List<ZoneOffset> |
getValidOffsets(LocalDateTime localDateTime)
これらのルールで、指定されたローカル日付/時間に適用できるオフセットを取得します。
|
int |
hashCode()
#equals の定義を前提として適切なハッシュ・コードを返します。 |
boolean |
isDaylightSavings(Instant instant)
指定されたインスタントがサマー・タイムにあるかどうかを確認します。
|
boolean |
isFixedOffset()
オフセットが変化しないように、ゾーン・ルールが固定されているかどうかを確認します。
|
boolean |
isValidOffset(LocalDateTime localDateTime, ZoneOffset offset)
オフセット日付/時間がこれらのルールに対して有効であるかどうかを確認します。
|
ZoneOffsetTransition |
nextTransition(Instant instant)
指定されたインスタント後の次の遷移を取得します。
|
static ZoneRules |
of(ZoneOffset offset)
固定ゾーン・ルールを持つZoneRulesのインスタンスを取得します。
|
static ZoneRules |
of(ZoneOffset baseStandardOffset, ZoneOffset baseWallOffset, List<ZoneOffsetTransition> standardOffsetTransitionList, List<ZoneOffsetTransition> transitionList, List<ZoneOffsetTransitionRule> lastRules)
ZoneRulesのインスタンスを取得します。
|
ZoneOffsetTransition |
previousTransition(Instant instant)
指定されたインスタント前の前の遷移を取得します。
|
String |
toString()
このオブジェクトを説明する文字列を返します。
|
public static ZoneRules of(ZoneOffset baseStandardOffset, ZoneOffset baseWallOffset, List<ZoneOffsetTransition> standardOffsetTransitionList, List<ZoneOffsetTransition> transitionList, List<ZoneOffsetTransitionRule> lastRules)
baseStandardOffset
- 有効なルールが設定される前に使用する標準オフセット、nullでないbaseWallOffset
- 有効なルールが設定される前に使用するウォール・オフセット、nullでないstandardOffsetTransitionList
- 標準オフセットへの変更のリスト、nullでないtransitionList
- 遷移のリスト、nullでないlastRules
- 繰り返しの最後のルール、サイズは16桁以下、nullでないpublic static ZoneRules of(ZoneOffset offset)
offset
- この固定ゾーン・ルールが基づくオフセット、nullでないisFixedOffset()
public boolean isFixedOffset()
public ZoneOffset getOffset(Instant instant)
時点からオフセットへのマッピングは単純であり、時点ごとに有効なオフセットは1つのみです。このメソッドはそのオフセットを返します。
instant
- オフセットの検索対象のインスタント、nullでない、ただし、ルールがすべてのインスタントに単一のオフセットを使用している場合はnullが無視されることがあるpublic ZoneOffset getOffset(LocalDateTime localDateTime)
ローカル日付/時間からオフセットへのマッピングは単純ではありません。3つのケースがあります。
ギャップまたは重複の場合、返されるオフセットは"正しい"値というよりも"最適な"値であるため、注意して処理する必要があります。正しいオフセットを考慮するアプリケーションは、getValidOffsets(LocalDateTime)
メソッドとgetTransition(LocalDateTime)
メソッドの組み合わせを使用してください。
localDateTime
- 問い合わせるローカル日付/時間、nullでない、ただし、ルールがすべての時点に単一のオフセットを使用している場合はnullが無視されることがあるpublic List<ZoneOffset> getValidOffsets(LocalDateTime localDateTime)
ローカル日付/時間からオフセットへのマッピングは単純ではありません。3つのケースがあります。
LocalDateTime
からの変換を処理するために様々な方法があります。このメソッドを使用した1つの方法は次のようになります。
List<ZoneOffset> validOffsets = rules.getOffset(localDT); if (validOffsets.size() == 1) { // Normal case: only one valid offset zoneOffset = validOffsets.get(0); } else { // Gap or Overlap: determine what to do from transition (which will be non-null) ZoneOffsetTransition trans = rules.getTransition(localDT); }
理論上は、有効なオフセットが3つ以上ある可能性があります。これは、時計を次々に複数回遅らせた場合に発生します。これは、タイムゾーンの履歴で発生したことがないため特別な処理はありません。ただし、発生した場合、リストは3つ以上のエントリを返します。
localDateTime
- 有効なオフセットを問い合わせるローカル日付/時間、nullでない、ただし、ルールがすべての時点に単一のオフセットを使用している場合はnullが無視されることがあるpublic ZoneOffsetTransition getTransition(LocalDateTime localDateTime)
ローカル日付/時間からオフセットへのマッピングは単純ではありません。3つのケースがあります。
LocalDateTime
からの変換を処理するために様々な方法があります。このメソッドを使用した1つの方法は次のようになります。
ZoneOffsetTransition trans = rules.getTransition(localDT); if (trans == null) { // Gap or Overlap: determine what to do from transition } else { // Normal case: only one valid offset zoneOffset = rule.getOffset(localDT); }
localDateTime
- オフセット遷移を問い合わせるローカル日付/時間、nullでない、ただし、ルールがすべての時点に単一のオフセットを使用している場合はnullが無視されることがあるpublic ZoneOffset getStandardOffset(Instant instant)
これは、標準オフセットが時間とともにどのように変化したかの履歴情報へのアクセスを提供します。標準オフセットはサマー・タイムが適用される前のオフセットです。これは、通常は冬の間に適用できるオフセットです。
instant
- オフセット情報を検索するインスタント、nullでない、ただし、ルールがすべてのインスタントに単一のオフセットを使用している場合はnullが無視されることがあるpublic Duration getDaylightSavings(Instant instant)
これにより、サマー・タイムの量が時間とともにどのように変化したかの履歴情報にアクセスできます。これは標準オフセットと実際のオフセットの間の差異です。通常、その量は冬の間がゼロで夏の間が1時間です。タイムゾーンは秒ベースであるため、デュレーションのナノ秒部分はゼロになります。
instant
- サマー・タイムを検索するインスタント、nullでない、ただし、ルールがすべてのインスタントに単一のオフセットを使用している場合はnullが無視されることがあるpublic boolean isDaylightSavings(Instant instant)
これにより、指定した時点の標準オフセットと実際のオフセットが同じかどうかが確認されます。同じでない場合は、サマー・タイムが有効であると想定されます。
instant
- オフセット情報を検索するインスタント、nullでない、ただし、ルールがすべてのインスタントに単一のオフセットを使用している場合はnullが無視されることがあるpublic boolean isValidOffset(LocalDateTime localDateTime, ZoneOffset offset)
有効であるには、ローカル日付/時間がギャップ内になく、オフセットが有効なオフセットのいずれかと一致する必要があります。
このデフォルト実装は、指定されたオフセットがgetValidOffsets(java.time.LocalDateTime)
に含まれるかどうかが確認されます。
localDateTime
- チェックする日付/時間、nullでない、ただし、ルールがすべての時点に単一のオフセットを使用している場合はnullが無視されることがあるoffset
- チェック対象のオフセット、nullはfalseを返すpublic ZoneOffsetTransition nextTransition(Instant instant)
これは、指定した時点後の次の遷移の詳細を返します。たとえば、時点がサマー・タイムが適用されるポイントを表す場合、メソッドは次のウィンター・タイムの遷移を返します。
instant
- このインスタントの後に次の遷移を取得する、nullでない、ただし、ルールがすべてのインスタントに単一のオフセットを使用している場合はnullが無視されることがあるpublic ZoneOffsetTransition previousTransition(Instant instant)
これは、指定された時点後の前の遷移の詳細を返します。たとえば、時点がサマー・タイムが適用されるポイントを表す場合、メソッドは前のウィンター・タイムからの遷移を返します。
instant
- このインスタントの後に前の遷移を取得する、nullでない、ただし、ルールがすべてのインスタントに単一のオフセットを使用している場合はnullが無視されることがあるpublic List<ZoneOffsetTransition> getTransitions()
このルール・インスタンスの完全な遷移セットは、このメソッドとgetTransitionRules()
で定義されます。このメソッドは、完全に定義されている遷移を返します。これらは、通常は履歴ですが、将来の場合もあります。
このリストは、固定オフセット・ルールの場合や単一オフセットのみが存在したタイムゾーンの場合は空になります。遷移ルールが不明の場合もリストが空になります。
public List<ZoneOffsetTransitionRule> getTransitionRules()
このルール・インスタンスの完全な遷移セットは、このメソッドとgetTransitions()
で定義されます。このメソッドは、遷移発生時用のアルゴリズムを定義するZoneOffsetTransitionRule
のインスタンスを返します。
指定されたZoneRules
について、このリストは完全に定義されている年を超える年の遷移ルールを含みます。これらのルールは通常、将来のサマー・タイム・ルール変更を指します。
ゾーンがサマー・タイムを将来に定義した場合、リストは、通常はサイズが2になり、サマー・タイムの開始または終了に関する情報を保持します。ゾーンがサマー・タイムを持たない場合や、将来の変更に関する情報が不明確な場合、リストは空になります。
リストは、固定オフセット・ルールの場合やサマー・タイムがないタイムゾーンの場合は空になります。遷移ルールが不明の場合もリストが空になります。
public boolean equals(Object otherRules)
指定された入力時点またはローカル日付/時間について2つのルール・セットが常に同じ出力になる場合、それらは等しいです。2つの異なるグループからのルールは、実際には同じ場合でもfalseを返すことがあります。
この定義は、それら全体の状態を比較する実装になるはずです。
equals
、クラス: Object
otherRules
- 他方のルール、nullはfalseを返すObject.hashCode()
、HashMap
public int hashCode()
#equals
の定義を前提として適切なハッシュ・コードを返します。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.