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);
}
从理论上讲,可能有两个以上的有效偏移量。 如果时钟连续多次放回,就会发生这种情况。 这从未发生在时区的历史中,因此没有特殊处理。 但是,如果发生这种情况,则列表将返回 2 个以上的条目。
Java参考java.time.zone.ZoneRules.getValidOffsets。