时区的处理
- Java8 中加入了对时区的支持,带时区的时间为分别为:ZonedDate、ZonedTime、ZonedDateTime。其中每个时区都对应着 ID,地区ID都为 “{区域}/{城市}”的格式。
- 例如 :Asia/Shanghai 等
- ZoneId:该类中包含了所有的时区信息
- getAvailableZoneIds() : 可以获取所有时区时区信息
- of(id) : 用指定的时区信息获取 ZoneId 对象
测试代码
ZoneTest.java
package java8.zone;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Set;
import org.junit.Test;
public class ZoneTest {
// 1.查看所有的可用时区
@Test
public void test1() {
// 调用ZoneId类的getAvailableZoneIds
Set<String> set = ZoneId.getAvailableZoneIds();
set.forEach(System.out::println);
}
/*
* 结果:
* ……
* Pacific/Guadalcanal
* Europe/Athens
* US/Pacific
* Europe/Monaco
*/
// 2.通过时区构建LocalDateTime
@Test
public void test2() {
LocalDateTime now = LocalDateTime.now(ZoneId.of("America/Louisville"));
System.out.println(now);
}
/*
* 结果:
* 2018-01-21T23:15:27.902
*/
// 3.以时区格式显示时间
@Test
public void test3() {
LocalDateTime ldt1 = LocalDateTime.now(ZoneId.of("Asia/Shanghai"));
ZonedDateTime atZone = ldt1.atZone(ZoneId.of("Asia/Shanghai"));
System.out.println(atZone);
}
/*
* 结果:
* 2018-01-22T12:15:20.131+08:00[Asia/Shanghai]
*/
}
其它
- 源码下载
关注下方公众号,回复:Java8.code
欢迎加入交流群:451826376
更多信息:www.itcourse.top