Java时钟类不提供当前时间

Java时钟类不提供当前时间,java,time,clock,Java,Time,Clock,我尝试使用Clock类获取当前时间 public class TestClock { public static void main(String[] args) { Clock c = Clock.systemDefaultZone(); System.out.println(c.instant()); } } 但问题是它没有给我现在的时间, 但它给出了: (当前时间-3小时) 所以我决定更加精确,并在节目中详细说明我居住的城市。(贝鲁特) 此外,它给了我: (当前时

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

public class TestClock {
  public static void main(String[] args) {
    Clock c = Clock.systemDefaultZone();
    System.out.println(c.instant());
  }
}
但问题是它没有给我现在的时间, 但它给出了:

(当前时间-3小时)

所以我决定更加精确,并在节目中详细说明我居住的城市。(贝鲁特)

此外,它给了我:

(当前时间-3小时)

那么问题出在哪里呢


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

如@Erwin Bolwidt所指出,请使用
ZoneDateTime
并通过该区域

public class TestClock {
    public static void main(String[] args) {
        ZoneId zone = ZoneId.of("Asia/Beirut");
        ZonedDateTime zdt = ZonedDateTime.now(zone);
        System.out.println(zdt);
    }
}
结果:
瞬间没有时区。使用。没有时区,或者它位于UTC时区,这取决于您如何看待它。是的,您是对的,但我仍然有一个问题:为什么我们可以将zone作为参数传递给clock对象,而clock类中没有方法提供带时区的时间?是的,您是对的,但我仍然有一个问题:为什么我们可以将zone作为参数传递给clock对象,而clock类中没有方法可以通过时区来给出时间?请阅读java官方文档中的
即时

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]