Класс Java 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 по Гринвичу, есть ли связь между этой информацией и моей проблемой?


person user9152856    schedule 11.06.2019    source источник
comment
Мгновение не имеет часового пояса.   -  person luk2302    schedule 11.06.2019
comment
Используйте ZonedDateTime.now()< /а>. Instant не имеет часового пояса , или он находится в часовом поясе UTC, в зависимости от того, как вы на это смотрите.   -  person Erwin Bolwidt    schedule 11.06.2019
comment
Да, вы правы, но у меня остался один вопрос: Почему мы можем передавать зону в качестве параметра объектам часов, в то время как в классе часов нет метода, который выдает время с часовым поясом?   -  person user9152856    schedule 11.06.2019


Ответы (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]
person Alexpandiyan Chokkan    schedule 11.06.2019
comment
Да, вы правы, но у меня остался один вопрос: Почему мы можем передавать зону в качестве параметра объектам часов, в то время как в классе часов нет метода, который выдает время с часовым поясом? - person user9152856; 11.06.2019
comment
Пожалуйста, прочтите официальный документ Instant в java docs.oracle .com/javase/8/docs/api/java/time/Instant.html - person Alexpandiyan Chokkan; 11.06.2019