# zoneId

# 介绍

zoneId是 Java 提供各个地区的时区对象

由于世界各个国家与地区的经度不同,各地区的时间也有所不同,因此会划分为不同的时区。

世界标准时间是:UTC,中国标准时间是需要在UTC上增加8个小时

# zoneId 解释

zoneId 代表时区id
如:

  • 上海:Asia/Shanghai
  • 重庆:Asia/Chongqing
  • 纽约:America/New_York

# 获取系统所在的时区

public class ZoneIdTest {
    public static void main(String[] args) {
        ZoneId zoneId = ZoneId.systemDefault();
        System.out.println("当前系统所在的时区:" + zoneId.getId());
    }
}

# 获取 Java 支持的全部时区id

public class ZoneIdTest {
    public static void main(String[] args) {
        //获取 Java 是支持的全部时区id
        Set<String> availableZoneIds = ZoneId.getAvailableZoneIds();
        System.out.println("时区:" + availableZoneIds);
    }
}

# 将某个时区id 封装成ZoneId对象

public class ZoneIdTest {
    public static void main(String[] args) {
        //将某个时区id 封装成ZoneId对象
        ZoneId newYork = ZoneId.of("America/New_York");
        System.out.println(newYork);
    }
}

# 获取指定时区的时间

public class ZoneIdTest {
    public static void main(String[] args) {
        //获取指定时区的时间
        ZonedDateTime newYorkDateTime = ZonedDateTime.now(newYork);
        System.out.println("美国时间:"+newYorkDateTime);
    }
}

# 获取世界标准时间

public class ZoneIdTest {
    public static void main(String[] args) {
        ZonedDateTime now = ZonedDateTime.now(Clock.systemUTC());
        System.out.println("世界标准时间;"+now);
    }
}

# 获取系统默认时区时间

public class ZoneIdTest {
    public static void main(String[] args) {
        ZonedDateTime now1 = ZonedDateTime.now();
        System.out.println("系统默认时间;" + now1);
    }
}

# 时间操作

操作方法和LocalDateTime 操作一致

import java.time.Clock;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Set;

public class ZoneIdTest {
    public static void main(String[] args) {
        ZonedDateTime newDate = now1.plusDays(1);
        System.out.println("增加的时间:" + newDate);
    }
}