如何使用 Java 8 中新的 DateTime API 获取 Zone

Kir*_* Ch 5 java timezone datetime

使用新的 API,我可以获得本地日期和时间:

LocalTime localTime = LocalTime.of(9,0,0);
LocalDate localDate = LocalDate.of(2017, Month.JUNE, 3);
LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime);
System.out.println("LocalDateTime:" + localDateTime);
Run Code Online (Sandbox Code Playgroud)

如果我需要将时间转换为特定时区,我也可以使用 ZoneId:

ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime, ZoneId.of("GMT"));
System.out.println("ZonedDateTime: " + zonedDateTime);

ZonedDateTime zonedDateTime2 = ZonedDateTime.of(localDateTime, ZoneId.of("Europe/London"));
System.out.println("ZonedDateTime London: " + zonedDateTime2);
Run Code Online (Sandbox Code Playgroud)

我可以通过以下方式获取当前时间:

Instant currentTime = Instant.now();
Run Code Online (Sandbox Code Playgroud)

我的问题。是否可以使用这个新 API 获取客户端计算机上使用的当前时间的ZoneId 和数字定义(例如 +04:00)?

小智 6

您可以使用ZoneId.systemDefault()这是文档