語言

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;變數規則則不行。

傳回

一個可能不可變的有效偏移量清單。 該清單中空白條目為零,一般本地日期時間有一條,重疊有兩條;在重疊中,較早的偏移量為先。

屬性

例外狀況

如果 localDateTime 是 null 且規則不是固定偏移,則會被拋出。

備註

取得規則中指定當地日期時間適用的偏移量。 從當地日期時間映射到偏移量並不簡單。 有三種情況:正常,且有一個有效的偏移量。 在一年中的絕大多數時間,適用正常情況,當地日期時間有一個有效的偏移;間隙,且有效偏移量為零。 這通常是因為春季夏令時間從「冬季」轉為「夏季」而時鐘跳動。 在空隙中存在局部的日期-時間值,且沒有有效的偏移量;重疊,且有兩個有效的偏移量。 這通常是因為秋季夏令時間從「夏季」改為「冬季」而將時鐘調回。 在重疊中,存在具有兩個有效偏移量的本地日期-時間值。 因此,對於任一給定的當地日期-時間,可以有零、一或兩個有效的偏移量。 此方法回傳該有效偏移量清單,大小為 0、1 或 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);
}

理論上,有效偏移量可能存在超過兩個。 這種情況發生在鐘錶連續被推回多次時。 這種情況在時區歷史上從未發生過,因此沒有特別處理方式。 然而,如果真的發生這種情況,清單就會回傳超過兩個條目。

Java 參考 java.time.zone.ZoneRules.getValidOffsets。

適用於