如何设置柏林时区的ZoneOffset

时间:2019-04-03 11:26:18

标签: java datetime timezone datetimeoffset java.time

我得到的LocalDateTime比实际时间少两个小时。我如何获取德国的偏移时间,以下代码的柏林时间,谢谢。

LocalDateTime dateTime = LocalDateTime.ofEpochSecond(seconds, 0, ZoneOffset.UTC);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss", Locale.ENGLISH);

谢谢

1 个答案:

答案 0 :(得分:0)

使用ZoneIdZonedDateTime

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss", Locale.ENGLISH);
    ZoneId zone = ZoneId.of("Europe/Berlin");

    long seconds = 1_556_000_000;

    ZonedDateTime dateTime = Instant.ofEpochSecond(seconds).atZone(zone);
    String formattedDateTime = dateTime.format(formatter);
    System.out.println(formattedDateTime);

此代码段的输出为:

  

23.04.2019 08:13:20

我的示例秒值对应于UTC的06:13:20,因此,您已将UTC的时间偏移了两个小时。

内置了夏令时(DST),因此在冬季,您应该从UTC获得的时间只有1小时。胶印工作的历史性变化也是开箱即用的,还有已知的未来变化(2021年以后德国将发生的情况没人知道)。