- java.lang.Object
-
- java.time.zone.ZoneOffsetTransition
-
- All Implemented Interfaces:
-
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
- 另请参见:
- Serialized Form
-
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 intcompareTo(ZoneOffsetTransition transition)根据转换时刻将此转换与另一个进行比较。booleanequals(Object other)检查这个对象是否等于另一个。LocalDateTimegetDateTimeAfter()获取本地转换日期时间,将以“after”偏移量表示。LocalDateTimegetDateTimeBefore()获取本地转换日期时间,如“before”偏移量所表达的那样。DurationgetDuration()获取转换的持续时间。InstantgetInstant()获得转换时刻。ZoneOffsetgetOffsetAfter()获得转换后的偏移量。ZoneOffsetgetOffsetBefore()在转换之前获取偏移量。inthashCode()返回一个合适的哈希码。booleanisGap()这个转变是否代表了本地时间线的差距。booleanisOverlap()这个转换是否代表本地时间线的重叠。booleanisValidOffset(ZoneOffset offset)在此转换期间检查指定的偏移是否有效。static ZoneOffsetTransitionof(LocalDateTime transition, ZoneOffset offsetBefore, ZoneOffset offsetAfter)获取定义两个偏移之间的转换的实例。longtoEpochSecond()将转换瞬间作为第二纪。StringtoString()返回描述此对象的字符串。
-
-
-
方法详细信息
-
of
public static ZoneOffsetTransition of(LocalDateTime transition, ZoneOffset offsetBefore, ZoneOffset offsetAfter)
- 参数
-
transition- 过渡transition的转换日期 - 时间(从未实际发生)表示为以前的偏移量,而不是null -
offsetBefore- 转换前的偏移量,不为空 -
offsetAfter- 转换过程中和之后的偏移量,不为空 - 结果
- 转换,不为空
- 异常
-
IllegalArgumentException- 如果offsetBefore和offsetAfter相等,或transition.getNano()返回非零值
-
getInstant
public Instant getInstant()
获得转换时刻。这是不连续的时刻,被定义为“after”偏移量应用的第一个时刻。
该方法
getInstant(),getDateTimeBefore()和getDateTimeAfter()都代表同一时刻。- 结果
- 转换瞬间,不为空
-
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)
检查这个对象是否等于另一个。比较对象的整个状态。
- 重写:
-
equals在Object - 参数
-
other- 要比较的另一个对象,null返回false - 结果
- 如果相等则为真
- 另请参见:
-
Object.hashCode(),HashMap
-
hashCode
public int hashCode()
返回一个合适的哈希码。- 重写:
-
hashCode在Object - 结果
- 哈希码
- 另请参见:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
-