Instant和ZonedDateTime之间的时间转换`
public static void main(String[] args) {
// Z = UTC+0
Instant instant = Instant.now();
System.out.println("Instant : " + instant);
ZoneId zone = ZoneId.systemDefault();
System.out.println("当前的时区 :" + zone);
ZonedDateTime zonedDateTime = instant.atZone(zone);
String format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(zonedDateTime);
System.out.println(" 当前时间在当前时区转换后的时间: " + format);
// Japan = UTC+9
ZonedDateTime jpTime = instant.atZone(ZoneId.of("Asia/Tokyo"));
System.out.println("日本时区 :" + ZoneId.of("Asia/Tokyo"));
String format1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(jpTime);
System.out.println("当前时间在日本时区转换后的时间 : " + format1);
System.out.println("OffSet : " + jpTime.getOffset());
}
输出结果:
Instant : 2020-10-13T07:18:30.081Z
当前是时区 :GMT+08:00
当前时间在当前时区转换后的时间: 2020-10-13 15:18:30
日本时区 :Asia/Tokyo
当前时间在日本时区转换后的时间 : 2020-10-13 16:18:30
OffSet : +09:00