- 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 方法 描述 int
compareTo(ZoneOffsetTransition transition)
根据转换时刻将此转换与另一个进行比较。boolean
equals(Object other)
检查这个对象是否等于另一个。LocalDateTime
getDateTimeAfter()
获取本地转换日期时间,将以“after”偏移量表示。LocalDateTime
getDateTimeBefore()
获取本地转换日期时间,如“before”偏移量所表达的那样。Duration
getDuration()
获取转换的持续时间。Instant
getInstant()
获得转换时刻。ZoneOffset
getOffsetAfter()
获得转换后的偏移量。ZoneOffset
getOffsetBefore()
在转换之前获取偏移量。int
hashCode()
返回一个合适的哈希码。boolean
isGap()
这个转变是否代表了本地时间线的差距。boolean
isOverlap()
这个转换是否代表本地时间线的重叠。boolean
isValidOffset(ZoneOffset offset)
在此转换期间检查指定的偏移是否有效。static ZoneOffsetTransition
of(LocalDateTime transition, ZoneOffset offsetBefore, ZoneOffset offsetAfter)
获取定义两个偏移之间的转换的实例。long
toEpochSecond()
将转换瞬间作为第二纪。String
toString()
返回描述此对象的字符串。
-
-
-
方法详细信息
-
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)
-
-