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