我尝试使用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,此信息与我的问题是否有联系?
答案 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]