Java Clock类没有给我当前时间

时间:2019-06-11 07:01:38

标签: java time clock

我尝试使用Clock类来获取当前时间。

public class TestClock {
  public static void main(String[] args) {
    Clock c = Clock.systemDefaultZone();
    System.out.println(c.instant());
  }
}

但是问题是它没有给我当前时间, 但它给出了:

  

(当前时间-3小时)

因此,我决定更加精确,并向程序指定我所居住的城市。(贝鲁特)

public class TestClock {
  public static void main(String[] args) {
    ZoneId zone = ZoneId.of("Asia/Beirut");
    Clock c = Clock.system(zone);
    System.out.println(c.instant());
  }
}

而且,它给了我:

  

(当前时间-3小时)。

那么问题出在哪里呢?

注意:在黎巴嫩-贝鲁特,格林威治时间+3,此信息与我的问题是否有联系?

1 个答案:

答案 0 :(得分:1)

就像@Erwin Bolwidt指出的那样,请使用ZonedDateTime并通过区域。

public class TestClock {
    public static void main(String[] args) {
        ZoneId zone = ZoneId.of("Asia/Beirut");
        ZonedDateTime zdt = ZonedDateTime.now(zone);
        System.out.println(zdt);
    }
}

结果:

2019-06-11T10:07:20.447+03:00[Asia/Beirut]