【发布时间】:2018-03-08 03:01:55
【问题描述】:
所以我试图在 Java 中获取当前的 UTC 时间(我正在使用 Java 7 和 ThreeTenAbp)。我尝试了以下调用,它们都返回 UTC + 12 小时的时间,这不是真正的 UTC 时间,因为我通过提供当前 UTC 时间的各种来源在线检查。
Instant.now().atZone(ZoneId.of("UTC")).toString();
Instant.now().toString();
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
我不知道为什么这些报告错误的 UTC 时间,因为我明确指定了 UTC 时区,但第二个时区除外。我还认为所有这些获取 UTC 时间的方法不太可能产生错误的结果,所以我想知道我做错了什么。
【问题讨论】:
-
我想知道为什么有人降级了这个问题?这将比仅仅给它一个-1更具建设性,就好像这个问题显然存在问题,人们需要知道在将来纠正它。
-
我无法复制。从您的代码中,我得到了
2018-03-09T17:45:49.066Z[UTC]、2018-03-09T17:45:49.108Z和09-03-2018 17:45:49。这个时间在运行时是正确的。我正在使用 ThreeTen Backport(但不是 ThreeTenABP)。很可能您的设备时间设置不正确。所有调用都使用设备的当前时间。