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;變數規則則不行。
傳回
一個可能不可變的有效偏移量清單。 該清單中空白條目為零,一般本地日期時間有一條,重疊有兩條;在重疊中,較早的偏移量為先。
- 屬性
例外狀況
如果 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。