0

目前我有一个 AIX SERVER,如果我在终端上发出命令date,我得到的响应是Mon Nov 4 00:28:40 EST 2013.

我有秒值 1383561560 ,这是自Wednesday, 31 December 1969, 19:00:00 (UTC time).

现在我有一个代码,它计算自 31 December 1969, 19:00:00 (UTC time)EST 时间以来的日期和时间。

DateFormat df = new SimpleDateFormat("MM/dd/yyyy_HH:mm:ss a");
df.setTimeZone(TimeZone.getTimeZone("EST"));
long ms = (long)(1383560920) *1000;
Date d1 = new Date(ms);
String formattedDate = df.format(d1); 
System.out.println("Now the date/time is "+formattedDate );

现在显示的日期/时间是11/04/2013_05:28:40 AM

这里为什么有5小时的差异?

4

1 回答 1

1

JavaDate基准时间从 开始,1 January 1970, 00:00:00但您的时间是31 December 1969, 19:00:00. 所以计算的时间差为5小时。

有关详细信息,请阅读此文档

分配一个 Date 对象并将其初始化以表示自称为“纪元”的标准基准时间(即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。

参数: date - 自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。

于 2013-11-04T06:02:53.330 回答