Module java.base
Package java.time.zone

Class ZoneOffsetTransition

java.lang.Object
java.time.zone.ZoneOffsetTransition
所有已实现的接口:
Serializable, Comparable<ZoneOffsetTransition>

public final class ZoneOffsetTransition extends Object implements Comparable<ZoneOffsetTransition>, Serializable
由本地时间线中的不连续引起的两个偏移之间的过渡。

两个偏移之间的过渡通常是夏令时切换的结果。不连续通常是春季的间隙和秋季的重叠。 ZoneOffsetTransition 模拟了两个偏移之间的过渡。

间隙发生在本地日期时间根本不存在的情况下。一个例子是当偏移从 +03:00 变为 +04:00 时。这可能被描述为“今晚1点时钟将向前移动一小时”。

重叠发生在本地日期时间存在两次的情况下。一个例子是当偏移从 +04:00 变为 +03:00 时。这可能被描述为“今晚2点时钟将向后移动一小时”。

实现要求:
此类是不可变的且线程安全的。
自:
1.8
参见:
  • Method Details

    • of

      public static ZoneOffsetTransition of(LocalDateTime transition, ZoneOffset offsetBefore, ZoneOffset offsetAfter)
      获取定义两个偏移之间过渡的实例。

      应用程序通常应从 ZoneRules 中获取实例。此工厂仅用于创建 ZoneRules

      参数:
      transition - 过渡时刻在过渡时刻,实际上从之前的偏移表示的本地时间开始,不能为空
      offsetBefore - 过渡前的偏移量,不能为空
      offsetAfter - 过渡时刻及之后的偏移量,不能为空
      返回:
      过渡,不能为空
      抛出:
      IllegalArgumentException - 如果 offsetBeforeoffsetAfter 相等,或者 transition.getNano() 返回非零值
    • getInstant

      public Instant getInstant()
      获取过渡时刻。

      这是不连续的时刻,定义为“之后”偏移应用的第一个时刻。

      方法 getInstant()getDateTimeBefore()getDateTimeAfter() 都表示相同的时刻。

      返回:
      过渡时刻,不能为空
    • toEpochSecond

      public long toEpochSecond()
      将过渡时刻作为时代秒获取。
      返回:
      过渡时代秒
    • getDateTimeBefore

      public LocalDateTime getDateTimeBefore()
      获取本地过渡日期时间,如使用“之前”偏移表示的日期时间。

      这是不连续开始的日期时间,用“之前”偏移表示。在此时刻,实际上使用“之后”偏移,因此“之前”日期时间和偏移的组合永远不会发生。

      “之前”日期时间和偏移的组合表示与“之后”日期时间和偏移相同的时刻。

      返回:
      使用之前偏移表示的过渡日期时间,不能为空
    • getDateTimeAfter

      public LocalDateTime getDateTimeAfter()
      获取本地过渡日期时间,如使用“之后”偏移表示的日期时间。

      这是不连续后的第一个日期时间,新偏移量应用的时刻。

      “之前”日期时间和偏移的组合表示与“之后”日期时间和偏移相同的时刻。

      返回:
      使用之后偏移表示的过渡日期时间,不能为空
    • getOffsetBefore

      public ZoneOffset getOffsetBefore()
      获取过渡前的偏移量。

      这是过渡时刻之前使用的偏移量。

      返回:
      过渡前的偏移量,不能为空
    • getOffsetAfter

      public ZoneOffset getOffsetAfter()
      获取过渡后的偏移量。

      这是过渡时刻及之后使用的偏移量。

      返回:
      过渡后的偏移量,不能为空
    • getDuration

      public Duration getDuration()
      获取过渡的持续时间。

      在大多数情况下,过渡持续时间为一小时,但并非总是如此。对于间隙,持续时间将为正,对于重叠,持续时间将为负。时区是基于秒的,因此持续时间的纳秒部分将为零。

      返回:
      过渡的持续时间,间隙为正,重叠为负
    • isGap

      public boolean isGap()
      此过渡是否代表本地时间线中的间隙。

      间隙发生在本地日期时间根本不存在的情况下。一个例子是当偏移从 +01:00 变为 +02:00 时。这可能被描述为“今晚1点时钟将向前移动一小时”。

      返回:
      如果此过渡是间隙,则为 true,如果是重叠,则为 false
    • isOverlap

      public boolean isOverlap()
      此过渡是否代表本地时间线中的重叠。

      重叠发生在本地日期时间存在两次的情况下。一个例子是当偏移从 +02:00 变为 +01:00 时。这可能被描述为“今晚2点时钟将向后移动一小时”。

      返回:
      如果此过渡是重叠,则为 true,如果是间隙,则为 false
    • isValidOffset

      public boolean isValidOffset(ZoneOffset offset)
      检查指定的偏移在此过渡期间是否有效。

      这将检查给定的偏移是否在过渡期间的某个时刻有效。间隙将始终返回 false。如果偏移为之前或之后的偏移,则重叠将返回 true。

      参数:
      offset - 要检查的偏移,null 返回 false
      返回:
      如果偏移在过渡期间有效,则为 true
    • compareTo

      public int compareTo(ZoneOffsetTransition otherTransition)
      根据过渡时刻将此过渡与另一个进行比较。

      这将比较每个过渡的时刻。偏移将被忽略,使得此顺序与 equals 不一致。

      指定者:
      compareTo 在接口 Comparable<ZoneOffsetTransition>
      参数:
      otherTransition - 要比较的过渡,不能为空
      返回:
      比较器值,即此过渡时刻与 otherTransition 时刻的比较
    • equals

      public boolean equals(Object other)
      检查此对象是否等于另一个对象。

      将比较对象的整个状态。

      覆盖:
      equals 在类 Object
      参数:
      other - 要比较的其他对象,null 返回 false
      返回:
      如果相等,则为 true
      参见:
    • hashCode

      public int hashCode()
      返回适当的哈希码。
      覆盖:
      hashCode 在类 Object
      返回:
      哈希码
      参见:
    • toString

      public String toString()
      返回描述此对象的字符串。
      覆盖:
      toString 在类 Object
      返回:
      用于调试的字符串,不能为空