两个偏移之间的过渡通常是夏令时切换的结果,而不连续性通常是春季的间隙和秋季的重叠,而这又是由本地时间线的不连续性引起的。
ZoneOffsetTransition 的函数是对这两个偏移之间的过渡进行建模。
注意:该类是不可变的且线程安全的
方法:
方法 |
说明 |
---|---|
createTransition(int year) |
此方法创建指定年份的过渡实例。 |
of(LocalDateTime transition, ZoneOffset offsetBefore, ZoneOffset offsetAfter) |
这是一个静态方法,用于检索前后偏移之间传输的对象 |
equals() |
此方法用于比较两个ZoneOffsetTransition对象。 |
compareTo() |
该方法用于比较两个ZoneOffsetTransition对象 |
hashCode() |
该方法用于检索当前ZoneOffsetTransition对象的哈希码。 |
getDateTimeAfter() |
此方法返回应用了后偏移量的 LocalDateTime 对象。 |
getDateTimeBefore() |
此方法返回一个应用了之前偏移量的 LocalDateTime 对象。 |
getDuration() |
此方法返回过渡的持续时间对象。 |
getInstant() |
此方法返回应用后偏移时第一个瞬间的 Instant 对象。 |
getOffsetAfter() |
此方法在转换后返回ZoneOffset 对象。 |
getOffsetBefore() |
此方法在转换后返回ZoneOffset 对象。 |
isGap() |
此方法返回当前转换是否表示本地时间线中的间隙。 |
isOverlap() |
此方法返回当前转换是否表示本地时间线中的重叠。 |
isValidOffset(ZoneOffset zoneOffset) |
此方法检查传递的ZoneOffset对象是否有效。即,如果 ZoneOffset 对象至少在某一点有效,则返回 true。如果在偏移之前或偏移之后存在重叠,则传递的 ZoneOffset 对象将是有效的对象。 |
toEpochSecond() |
此方法将转换时刻作为纪元秒(long值)返回 |
toString() |
此方法返回一个说明当前ZoneOffsetTransition对象的字符串对象。 |
下面是 ZoneOffsetTransition 类的 Java 实现:
Java
import java.io.*;
import java.time.*;
import java.time.chrono.*;
import java.time.zone.*;
import java.util.*;
public class GeeksForGeeks {
public static void main(String args[])
{
int year1 = 1996, year2 = 2001;
// creating the offsets
ZoneOffset ofSet1 = ZoneOffset.ofTotalSeconds(5);
ZoneOffset ofSet2 = ZoneOffset.ofTotalSeconds(2);
// creating two transition zones
ZoneOffsetTransition z1 = ZoneOffsetTransition.of(
LocalDateTime.of(year1, 11, 24, 03, 24, 48, 0),
ofSet1, ofSet2);
ZoneOffsetTransition z2 = ZoneOffsetTransition.of(
LocalDateTime.of(year2, 10, 30, 01, 21, 52, 0),
ofSet1, ofSet2);
// checking for equality of
// the two transistion zones.
boolean ans = z1.equals(z2);
if (ans)
System.out.println(
"The transition zones match!");
else
System.out.println(
"Sorry, the transition zones do not match!");
// using the getOffsetAfter to find the
// offsetAfter of a transition zone
ZoneOffset zone = z1.getOffsetAfter();
System.out.println(
"The offsetAfter of the first transition zone is"
+ zone);
}
}
Sorry, the transition zones do not match! The offsetAfter of the first transition zone is+00:00:02
相关用法
- Java java.time.Clock.equals()用法及代码示例
- Java java.time.Clock.fixed()用法及代码示例
- Java java.time.Clock.getZone()用法及代码示例
- Java java.time.Clock.hashCode()用法及代码示例
- Java java.time.Clock.instant()用法及代码示例
- Java java.time.Clock.millis()用法及代码示例
- Java java.time.Clock.offset()用法及代码示例
- Java java.time.Clock.system()用法及代码示例
- Java java.time.Clock.systemDefaultZone()用法及代码示例
- Java java.time.Clock.systemUTC()用法及代码示例
- Java java.time.Clock.tick()用法及代码示例
- Java java.time.Clock.tickMinutes()用法及代码示例
- Java java.time.Clock.tickSeconds()用法及代码示例
- Java java.time.Clock.withZone()用法及代码示例
- Java java.time.Duration.abs()用法及代码示例
- Java java.time.Duration.addTo()用法及代码示例
- Java java.time.Duration.between()用法及代码示例
- Java java.time.Duration.compareTo()用法及代码示例
- Java java.time.Duration.dividedBy()用法及代码示例
- Java java.time.Duration.equals()用法及代码示例
- Java java.time.Duration.from()用法及代码示例
- Java java.time.Duration.get()用法及代码示例
- Java java.time.Duration.getNano()用法及代码示例
- Java java.time.Duration.getSeconds()用法及代码示例
- Java java.time.Duration.getUnits()用法及代码示例
注:本文由纯净天空筛选整理自dikshapatro大神的英文原创作品 java.time.zone.ZoneOffsetTransition Class in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。