我有: startDate = 24.03.2013 21:01:20 endDate = 24.03.2013 21:01:40
我在我的代码中
Date d = new Date(endDate.getTime()-startDate.getTime)
和 d = 01.01.1970 02:00:20
如果需要 2 小时,则间隔应该是 20 秒,但我得到 2 小时 20 秒。为什么会发生?该怎么办?
我有: startDate = 24.03.2013 21:01:20 endDate = 24.03.2013 21:01:40
我在我的代码中
Date d = new Date(endDate.getTime()-startDate.getTime)
和 d = 01.01.1970 02:00:20
如果需要 2 小时,则间隔应该是 20 秒,但我得到 2 小时 20 秒。为什么会发生?该怎么办?
你正在做的是new Date("difference between two dates")
在 1970 年 1 月 1 日获得时间。但是在您的语言环境中,01.01.1970 生效的时区偏移量是多少?我猜+02小时。
您还应该打印结果new Date(0L)
并比较差异。或者确保在显示日期时将时区设置为 UTC。
我不知道你在那里做了什么,但我得到了正确的结果:
DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
Date startDate = df.parse("24.03.2013 21:01:20");
Date endDate = df.parse("24.03.2013 21:01:40");
Date d = new Date(endDate.getTime()-startDate.getTime());
System.out.print(d);
输出:1970 年 1 月 1 日星期四 00:00:20 GMT