模块  java.base
软件包  java.time.zone

Class ZoneOffsetTransition

  • 实现的所有接口
    SerializableComparable<ZoneOffsetTransition>

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

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

    在存在根本不存在的本地日期时间的地方会出现差距。 一个例子是当偏移从+03:00变为+04:00 这可能被描述为“今晚1点时钟将向前移动一小时”。

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

    实现要求:
    这个类是不可变的和线程安全的。
    从以下版本开始:
    1.8
    另请参见:
    Serialized Form
    • 方法详细信息

      • of

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

        应用程序通常应从ZoneRules获取实例。 此工厂仅在创建ZoneRules时使用。

        参数
        transition - 转换时的转换日期时间,从未实际发生,表示在 transition偏移的本地,而不是null
        offsetBefore - 转换前的偏移量,不为空
        offsetAfter - 转换时和转移后的偏移量,不为空
        结果
        过渡,而不是空
        异常
        IllegalArgumentException - 如果 offsetBeforeoffsetAfter相等,或 transition.getNano()返回非零值
      • toEpochSecond

        public long toEpochSecond()
        获取转换瞬间作为历元秒。
        结果
        转型时代第二
      • getDateTimeBefore

        public LocalDateTime getDateTimeBefore()
        获取本地转换日期时间,用“before”偏移量表示。

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

        'before'日期时间和偏移的组合表示与'after'日期时间和偏移相同的瞬间。

        结果
        转换日期时间用前置偏移量表示,不为空
      • getDateTimeAfter

        public LocalDateTime getDateTimeAfter()
        获取本地转换日期时间,用“after”偏移量表示。

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

        'before'日期时间和偏移的组合表示与'after'日期时间和偏移相同的瞬间。

        结果
        转换日期时间用后置偏移量表示,不为空
      • 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)
        在此转换期间检查指定的偏移量是否有效。

        这将检查给定偏移量是否在转换中的某个点有效。 差距总是会返回错误。 如果偏移量是偏移量之前或之后,则重叠将返回true。

        参数
        offset - 要检查的偏移量,null返回false
        结果
        如果偏移在转换期间有效,则返回true
      • compareTo

        public int compareTo​(ZoneOffsetTransition transition)
        根据转换瞬间将此转换与另一转换进行比较。

        这比较了每次转换的瞬间。 忽略偏移量,使此顺序与equals不一致。

        Specified by:
        compareTo在界面 Comparable<ZoneOffsetTransition>
        参数
        transition - 要比较的转换,而不是null
        结果
        比较器值,如果更小则为负,如果更大则为正
      • equals

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

        比较对象的整个状态。

        重写:
        equals在课程 Object
        参数
        other - 要比较的另一个对象,null返回false
        结果
        如果相等则为真
        另请参见:
        Object.hashCode()HashMap
      • toString

        public String toString()
        返回描述此对象的字符串。
        重写:
        toString在课程 Object
        结果
        用于调试的字符串,而不是null