- 5
- 0
- 约4.99千字
- 约 6页
- 2017-07-26 发布于河北
- 举报
Java 分区日期时间.pdf
Java 分区⽇期时间
Java ⽇期时间 - Java分区⽇期时间
分区⽇期时间
ZonedDateTime 类表⽰带有时区规则的⽇期时间。
ZonedDateTime 结合了 LocalDateTime 和 ZoneId 。
下⾯说明如何从 LocalDateTime 创建 ZonedDateTime 。
import java.time.LocalDateTime;
import java.time.Month;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class Main {
public static void main(String ] args) {
ZoneId usCentral = ZoneId.of(America/Chicago);
LocalDateTime localDateTime = LocalDateTime.of(2014, Month.MAY
System.out.println(localDateTime);
ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime,
System.out.println(zonedDateTime);
}
}
上⾯的代码⽣ 以下结果。
注意
由于夏令时更改,可能会发⽣时区中的本地时间轴上的间隙或重叠。
当时钟向前或向后移动⼀个⼩时时,会有时间上的间隙或重叠
如果时间落在间隙的中间,则时间向前移动与间隙相同的量。
如果时间落在重叠的中间,则时间有效。
默认情况下,使⽤较早版本。 withEarlierOffsetAtOverlap()和
fromLaterOffsetAtOverlap()从ZonedDateTime让您选择所需的区域偏移量,如果时间落
在重叠。
例2
以下代码显⽰ZonedDateTime ,其中时间落在间隙和重叠中。
import java.time.LocalDateTime;
import java.time.Month;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class Main {
public static void main(String ] args) {
ZoneId usChicago = ZoneId.of(America/Chicago);
// 2014-03-09T02:30 did not exist in America/Chicago time zone
LocalDateTime ldt = LocalDateTime.of(2014, Month.MARCH, 9, 2,
ZonedDateTime zdt = ZonedDateTime.of(ldt, usChicago);
System.out.println(zdt);
// 2013-10-03T01:30 existed twice in America/Chicago time zone
LocalDateTime ldt2 = LocalDateTime.of(2013, Month.NOVEMBER, 3,
ZonedDateTime zdt2 = ZonedDateTime.of(ldt2, usChicago);
System.out.println(zdt2.withEarlierOffsetAtOverlap());
System.out.println(zdt2.withLaterOffsetAtOverlap());
}
}
上⾯的代码⽣ 以下结果。
例3
ZonedDateTime .of Local(LocalDateTime localDateTime ,ZoneId zone ,Zone Offset
preferred Offset)从区域偏移创建ZonedDateTime 。
如果指定的引⽤区域偏移⽆效,则使⽤重叠的较早区域偏移。
- 7: ⽆效,则使⽤较早的偏移量- 5: 。
import java.time.LocalDateTime;
import java.time.Month;
import java.time.ZoneId;
imp
原创力文档

文档评论(0)