Module  java.base
软件包  java.time.zone

Class ZoneOffsetTransition

  • All Implemented Interfaces:
    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”偏移量所表达的那样。

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

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

        结果
        以前偏移量表示的转换日期时间不为null
      • getDateTimeAfter

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

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

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

        结果
        以后偏移量表示的转换日期时间不为空
      • getOffsetBefore

        public ZoneOffset getOffsetBefore​()
        在转换之前获取偏移量。

        这是转换之前的使用偏移量。

        结果
        转换前的偏移量,不为空
      • getOffsetAfter

        public ZoneOffset getOffsetAfter​()
        获得转换后的偏移量。

        这是在转换瞬间和之后使用的偏移量。

        结果
        转换后的偏移量,不为空
      • getDuration

        public Duration getDuration​()
        获取转换的持续时间。

        在大多数情况下,过渡时间为1小时,但并不总是如此。 持续时间对于差距为正,而重叠的持续时间为负。 时区是次要的,所以持续时间的纳秒部分将为零。

        结果
        过渡期持续时间为负,为重叠
      • isGap

        public boolean isGap​()
        这个转变是否代表了本地时间线的差距。

        当地的日期时间根本不存在时,会出现差距。 一个例子是当偏移从+01:00变为+02:00 这可能被描述为“时钟将在凌晨1点钟前往前进一小时。

        结果
        如果这个过渡是间隙,则为真,如果是重叠则为假
      • isOverlap

        public boolean isOverlap​()
        这个转换是否代表本地时间线的重叠。

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

        结果
        如果这个过渡是重叠,则为真,如果是间隙,则为false
      • isValidOffset

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

        这将检查给定的偏移量是否在转换中的某个时间点有效。 差距总是返回假。 如果偏移量是前后偏移量,重叠将返回true。

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

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

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

        Specified by:
        compareTo在接口 Comparable<ZoneOffsetTransition>
        参数
        transition - 转换为比较,不为null
        结果
        比较器值为负,如果较小,则如果较大则为正
      • equals

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

        比较对象的整个状态。

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

        public String toString​()
        返回描述此对象的字符串。
        重写:
        toStringObject
        结果
        一个用于调试的字符串,不为null