奇怪的问题将毫秒转换为java Date

时间:2011-07-15 02:28:49

标签: java

我试图将日期值以毫秒格式转换为java日期使用
新日期(毫秒) 我获得的转换价值比它应该的价格低3小时。

我尝试使用在线工具来转换我拥有的毫秒值并将其转换为正确的日期。 有人可以指出我缺少的东西!!!

thnx

1 个答案:

答案 0 :(得分:2)

java.util.Date没有一小时 - 至少不是你可能意味着的方式。尝试以下操作,您将看到日期只是一个时间点,您可以特定为自纪元以来的X毫秒:

long millisec = System.currentTimeMillis();
Date date = new Date(millisec);
long millisec2 = date.getTime();

如果我在纽约市的时区打印此日期,它将对应于一天中的某个小时。如果我在GMT中打印相同的日期,则小时将增加四个小时。您可能正在以看到相同时区效果的方式打印值。

将日期视为一个时间点。这是自纪元以来的特定毫秒数。让我们选择3PM PDT作为我们的时间点。这相当于美国东部时间下午6点。换句话说,所有这三个值(自纪元,3PM PDT和美国东部时间下午6点之后的毫秒)在时间轴上占据相同的位置。

或者,这是另一种解释。有一天下午3点的PDT与当天美国东部时间下午3点不同。假设3PM PDT对应于自纪元以来的M毫秒。然后,3PM EDT = M - 10,800,000毫秒(这是3小时内的milleseconds数)。