【发布时间】:2017-11-14 23:55:50
【问题描述】:
我正在尝试将5007 转换为HH:mm:ss:SSS,我正在使用Netbeans IDE v8.2:
Date date = new Date(5007);
DateFormat formatter = new SimpleDateFormat("HH:mm:ss:SSS");
String dateFormatted = formatter.format(date);
但这给了我一个不正确的结果:
01:00:05:007
^^-------------------------why does it print to me 01 in the hours?
但它应该得到:
00:00:05:007
^^-------------------------correct result
例如,当我使用 ideone 时,它会给我一个正确的结果:
对这个问题有什么解释吗?
我测试了两个版本:Java 7 和 Java 8。
【问题讨论】:
-
我的猜测是它与夏令时有关。时间 0 大概是 1970-01-01 01:00:00:000
-
可能是不同的jdk?当您映射从纪元到日期的毫秒数时,可能只是不考虑夏令时。我不知道细节,所以我没有把它作为答案发布。
-
@TedCassirer 不,不是不同的 JDK,而是不同的默认时区。所以我猜你是在正确的轨道上。
-
Ideone 使用 GMT 作为其默认时区:ideone.com/9qxi16 并且 OP 的 CET 为 UTC + 1(当前)。
-
想知道这个问题以前被问过多少次。请通过搜索帮助自己快速找到答案。
标签: java netbeans simpledateformat epoch time-format