- 所有已实现的接口:
-
Serializable
,Comparable<ZoneOffsetTransition>
两个偏移之间的过渡通常是夏令时切换的结果。不连续通常是春季的间隙和秋季的重叠。 ZoneOffsetTransition
模拟了两个偏移之间的过渡。
间隙发生在本地日期时间根本不存在的情况下。一个例子是当偏移从 +03:00
变为 +04:00
时。这可能被描述为“今晚1点时钟将向前移动一小时”。
重叠发生在本地日期时间存在两次的情况下。一个例子是当偏移从 +04:00
变为 +03:00
时。这可能被描述为“今晚2点时钟将向后移动一小时”。
- 实现要求:
- 此类是不可变的且线程安全的。
- 自:
- 1.8
- 参见:
-
Method Summary
Modifier and TypeMethodDescriptionint
compareTo
(ZoneOffsetTransition otherTransition) 根据过渡时刻将此过渡与另一个进行比较。boolean
检查此对象是否等于另一个对象。获取本地过渡日期时间,如使用“之后”偏移表示的日期时间。获取本地过渡日期时间,如使用“之前”偏移表示的日期时间。获取过渡的持续时间。获取过渡时刻。获取过渡后的偏移量。获取过渡前的偏移量。int
hashCode()
返回适当的哈希码。boolean
isGap()
此过渡是否代表本地时间线中的间隙。boolean
此过渡是否代表本地时间线中的重叠。boolean
isValidOffset
(ZoneOffset offset) 检查在此过渡期间指定的偏移是否有效。static ZoneOffsetTransition
of
(LocalDateTime transition, ZoneOffset offsetBefore, ZoneOffset offsetAfter) 获取定义两个偏移之间过渡的实例。long
将过渡时刻作为时代秒获取。toString()
返回描述此对象的字符串。
-
Method Details
-
of
public static ZoneOffsetTransition of(LocalDateTime transition, ZoneOffset offsetBefore, ZoneOffset offsetAfter) - 参数:
-
transition
- 过渡时刻在过渡时刻,实际上从之前的偏移表示的本地时间开始,不能为空 -
offsetBefore
- 过渡前的偏移量,不能为空 -
offsetAfter
- 过渡时刻及之后的偏移量,不能为空 - 返回:
- 过渡,不能为空
- 抛出:
-
IllegalArgumentException
- 如果offsetBefore
和offsetAfter
相等,或者transition.getNano()
返回非零值
-
getInstant
获取过渡时刻。这是不连续的时刻,定义为“之后”偏移应用的第一个时刻。
方法
getInstant()
、getDateTimeBefore()
和getDateTimeAfter()
都表示相同的时刻。- 返回:
- 过渡时刻,不能为空
-
toEpochSecond
public long toEpochSecond()将过渡时刻作为时代秒获取。- 返回:
- 过渡时代秒
-
getDateTimeBefore
获取本地过渡日期时间,如使用“之前”偏移表示的日期时间。这是不连续开始的日期时间,用“之前”偏移表示。在此时刻,实际上使用“之后”偏移,因此“之前”日期时间和偏移的组合永远不会发生。
“之前”日期时间和偏移的组合表示与“之后”日期时间和偏移相同的时刻。
- 返回:
- 使用之前偏移表示的过渡日期时间,不能为空
-
getDateTimeAfter
获取本地过渡日期时间,如使用“之后”偏移表示的日期时间。这是不连续后的第一个日期时间,新偏移量应用的时刻。
“之前”日期时间和偏移的组合表示与“之后”日期时间和偏移相同的时刻。
- 返回:
- 使用之后偏移表示的过渡日期时间,不能为空
-
getOffsetBefore
获取过渡前的偏移量。这是过渡时刻之前使用的偏移量。
- 返回:
- 过渡前的偏移量,不能为空
-
getOffsetAfter
获取过渡后的偏移量。这是过渡时刻及之后使用的偏移量。
- 返回:
- 过渡后的偏移量,不能为空
-
getDuration
获取过渡的持续时间。在大多数情况下,过渡持续时间为一小时,但并非总是如此。对于间隙,持续时间将为正,对于重叠,持续时间将为负。时区是基于秒的,因此持续时间的纳秒部分将为零。
- 返回:
- 过渡的持续时间,间隙为正,重叠为负
-
isGap
public boolean isGap()此过渡是否代表本地时间线中的间隙。间隙发生在本地日期时间根本不存在的情况下。一个例子是当偏移从
+01:00
变为+02:00
时。这可能被描述为“今晚1点时钟将向前移动一小时”。- 返回:
- 如果此过渡是间隙,则为 true,如果是重叠,则为 false
-
isOverlap
public boolean isOverlap()此过渡是否代表本地时间线中的重叠。重叠发生在本地日期时间存在两次的情况下。一个例子是当偏移从
+02:00
变为+01:00
时。这可能被描述为“今晚2点时钟将向后移动一小时”。- 返回:
- 如果此过渡是重叠,则为 true,如果是间隙,则为 false
-
isValidOffset
检查指定的偏移在此过渡期间是否有效。这将检查给定的偏移是否在过渡期间的某个时刻有效。间隙将始终返回 false。如果偏移为之前或之后的偏移,则重叠将返回 true。
- 参数:
-
offset
- 要检查的偏移,null 返回 false - 返回:
- 如果偏移在过渡期间有效,则为 true
-
compareTo
根据过渡时刻将此过渡与另一个进行比较。这将比较每个过渡的时刻。偏移将被忽略,使得此顺序与 equals 不一致。
- 指定者:
-
compareTo
在接口Comparable<ZoneOffsetTransition>
中 - 参数:
-
otherTransition
- 要比较的过渡,不能为空 - 返回:
-
比较器值,即此过渡时刻与
otherTransition
时刻的比较
-
equals
检查此对象是否等于另一个对象。将比较对象的整个状态。
-
hashCode
public int hashCode()返回适当的哈希码。 -
toString
返回描述此对象的字符串。
-