Language

ZoneRules.GetValidOffsets(LocalDateTime) メソッド

定義

これらの規則で指定されたローカル日時に適用できるオフセットを取得します。

[Android.Runtime.Register("getValidOffsets", "(Ljava/time/LocalDateTime;)Ljava/util/List;", "", ApiSince=26)]
public System.Collections.Generic.IList<Java.Time.ZoneOffset>? GetValidOffsets(Java.Time.LocalDateTime? localDateTime);
[<Android.Runtime.Register("getValidOffsets", "(Ljava/time/LocalDateTime;)Ljava/util/List;", "", ApiSince=26)>]
member this.GetValidOffsets : Java.Time.LocalDateTime -> System.Collections.Generic.IList<Java.Time.ZoneOffset>

パラメーター

localDateTime
LocalDateTime

有効なオフセットを照会するローカル日時。 固定オフセット規則では、 nullが無視される場合があります。変数の規則では無視されません。

返品

有効なオフセットの変更できない可能性のあるリスト。 このリストには、ギャップのエントリが 0 個、通常のローカル日時用に 1 つ、重複するエントリが 2 つ含まれます。が重複している場合は、前のオフセットが最初になります。

属性

例外

localDateTimeがnullされ、ルールが固定オフセットでない場合にスローされます。

注釈

これらの規則で指定されたローカル日時に適用できるオフセットを取得します。 ローカル日時からオフセットへのマッピングは簡単ではありません。 次の 3 つのケースがあります。標準で、有効なオフセットが 1 つあります。 年の大部分では、通常のケースが適用され、ローカル日時に対して有効なオフセットが 1 つあります。ギャップ。有効なオフセットが 0 です。 これは、春の夏時間が "冬" から "夏" に変わるため、通常は時計が前方にジャンプする場合です。 ギャップには、有効なオフセットのないローカルの日時値があります。2 つの有効なオフセットと重複します。 これは、秋の夏時間が「夏」から「冬」に変わるため、時計が一般的に戻ってくるときです。 重複する場合、2 つの有効なオフセットを持つローカルの日時値があります。 したがって、特定のローカル日時に対して、0 個、1 つまたは 2 つの有効なオフセットを指定できます。 このメソッドは、有効なオフセットの一覧 (サイズ 0、1、または 2 のリスト) を返します。 2 つのオフセットがある場合、前のオフセットはインデックス 0 で、それ以降のオフセットはインデックス 1 で返されます。 LocalDateTime からの変換を処理するには、さまざまな方法があります。

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);
}

理論的には、2 つ以上の有効なオフセットが存在する可能性があります。 これは、クロックが連続して複数回戻される場合に発生します。 これは、タイム ゾーンの歴史の中で起こったことはありません。そのため、特別な処理はありません。 ただし、それが発生した場合、リストは 2 つ以上のエントリを返します。

Javaリファレンス。

適用対象