- java.lang.Object
-
- java.time.zone.ZoneOffsetTransition
-
- 实现的所有接口
-
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
-
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 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()
获取转换瞬间。这是不连续的瞬间,它被定义为“后”偏移应用的第一个瞬间。
该方法
getInstant(),getDateTimeBefore()和getDateTimeAfter()都代表同一时刻。- 结果
- 过渡时刻,不是空的
-
toEpochSecond
public long toEpochSecond()
获取转换瞬间作为历元秒。- 结果
- 转型时代第二
-
getDateTimeBefore
public LocalDateTime getDateTimeBefore()
获取本地转换日期时间,用“before”偏移量表示。这是以“之前”偏移量表示不连续性开始的日期时间。 此时,实际使用'after'偏移,因此永远不会发生此日期时间和'之前'偏移的组合。
'before'日期时间和偏移的组合表示与'after'日期时间和偏移相同的瞬间。
- 结果
- 转换日期时间用前置偏移量表示,不为空
-
getDateTimeAfter
public LocalDateTime getDateTimeAfter()
获取本地转换日期时间,用“after”偏移量表示。这是不连续之后的第一个日期时间,当新的偏移量适用时。
'before'日期时间和偏移的组合表示与'after'日期时间和偏移相同的瞬间。
- 结果
- 转换日期时间用后置偏移量表示,不为空
-
getOffsetBefore
public ZoneOffset getOffsetBefore()
获取转换前的偏移量。这是在转换瞬间之前使用的偏移量。
- 结果
- 转换前的偏移量,不为空
-
getOffsetAfter
public ZoneOffset getOffsetAfter()
获取转换后的偏移量。这是转换瞬间和之后使用的偏移量。
- 结果
- 转换后的偏移量,不为空
-
getDuration
public Duration getDuration()
获取转换的持续时间。在大多数情况下,转换持续时间为一小时,但情况并非总是如此。 间隙的持续时间为正,而重叠的持续时间为负。 时区是基于秒的,因此持续时间的纳秒部分将为零。
- 结果
- 过渡期,间隙为正,重叠为负
-
isGap
public boolean isGap()
这种转变是否代表了当地时间线的差距。在存在根本不存在的本地日期时间的地方会出现差距。 一个例子是当偏移从
+01:00变为+02:00。 这可能被描述为“今晚1点时钟将向前移动一小时”。- 结果
- 如果此转换是间隙,则返回true;如果是间隙,则返回false
-
isOverlap
public boolean isOverlap()
此转换是否表示本地时间线的重叠。重叠发生在存在两次的本地日期时间。 一个例子是当偏移从
+02:00变为+01:00。 这可能被描述为“时钟将在凌晨2点向后移动一小时”。- 结果
- 如果此转换是重叠,则返回true;如果是间隙,则返回false
-
isValidOffset
public boolean isValidOffset(ZoneOffset offset)
在此转换期间检查指定的偏移量是否有效。这将检查给定偏移量是否在转换中的某个点有效。 差距总是会返回错误。 如果偏移量是偏移量之前或之后,则重叠将返回true。
- 参数
-
offset- 要检查的偏移量,null返回false - 结果
- 如果偏移在转换期间有效,则返回true
-
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)
-
-