- 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
-
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 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()
获取转换瞬间。这是不连续的瞬间,它被定义为“后”偏移应用的第一个瞬间。
该方法
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)
-
-