ZoneRules.GetValidOffsets(LocalDateTime) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
これらの規則で指定されたローカル日時に適用できるオフセットを取得します。
[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 つ以上のエントリを返します。