public final class ZoneOffsetTransition extends Object implements Comparable<ZoneOffsetTransition>, Serializable
两个偏移之间的转换通常是夏令时切换的结果。 不连续性通常是春季的差距,秋季的重叠。 ZoneOffsetTransition
模拟两个偏移之间的转换。
当地的日期时间根本不存在时,会出现差距。 一个例子是当偏移从+03:00
变为+04:00
。 这可能被描述为“时钟将在凌晨1点钟前往前进一小时。
重叠发生在存在两次的本地日期时间。 一个例子是当偏移从+04:00
变为+03:00
。 这可能被描述为“时钟将在凌晨2点钟移动一小时。
Modifier and Type | Method and Description |
---|---|
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()
返回描述此对象的字符串。
|
public static ZoneOffsetTransition of(LocalDateTime transition, ZoneOffset offsetBefore, ZoneOffset offsetAfter)
transition
- 转换中的转换日期 - 时间(从未实际发生)表示为以前的偏移量,而不是null
offsetBefore
- 转换前的偏移量,不为空
offsetAfter
- 转换过程中和之后的偏移量,不为空
IllegalArgumentException
- 如果
offsetBefore
和
offsetAfter
相等,或
transition.getNano()
返回非零值
public Instant getInstant()
这是不连续的时刻,被定义为“after”偏移量应用的第一个时刻。
该方法getInstant()
, getDateTimeBefore()
和getDateTimeAfter()
都代表同一时刻。
public long toEpochSecond()
public LocalDateTime getDateTimeBefore()
这是日期时间,不连续开始用“before”偏移量表示。 在这个时刻,实际使用'after'偏移量,因此这个日期时间和'before'偏移量的组合将永远不会发生。
“之前”日期时间和偏移量的组合表示与“之后”日期时间和偏移量相同的时刻。
public LocalDateTime getDateTimeAfter()
这是在不连续性之后的第一个日期时间,当新的偏移量适用时。
“之前”日期时间和偏移量的组合表示与“之后”日期时间和偏移量相同的时刻。
public ZoneOffset getOffsetBefore()
这是转换之前的使用偏移量。
public ZoneOffset getOffsetAfter()
这是在转换瞬间和之后使用的偏移量。
public Duration getDuration()
在大多数情况下,过渡时间为1小时,但并不总是如此。 持续时间对于差距为正,而重叠的持续时间为负。 时区是次要的,所以持续时间的纳秒部分将为零。
public boolean isGap()
当地的日期时间根本不存在时,会出现差距。 一个例子是当偏移从+01:00
变为+02:00
。 这可能被描述为“时钟将在凌晨1点钟前往前进一小时。
public boolean isOverlap()
重叠发生在存在两次的本地日期时间。 一个例子是当偏移从+02:00
变为+01:00
。 这可能被描述为“时钟将在凌晨2点钟移动一小时。
public boolean isValidOffset(ZoneOffset offset)
这将检查给定的偏移量是否在转换中的某个时间点有效。 差距总是返回假。 如果偏移量是前后偏移量,重叠将返回true。
offset
- 要检查的偏移量,null返回false
public int compareTo(ZoneOffsetTransition transition)
这比较了每个过渡的时刻。 偏移量被忽略,使得该顺序与equals不一致。
compareTo
在接口
Comparable<ZoneOffsetTransition>
transition
- 转换为比较,不为空
public boolean equals(Object other)
比较对象的整个状态。
equals
在
Object
other
- 要比较的其他对象,null返回false
Object.hashCode()
, HashMap
public int hashCode()
hashCode
在
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)