我有: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秒。 为什么会这样?怎么办?
答案 0 :(得分:3)
你正在做的是new Date("difference between two dates")
并且有时间
01.01.1970。但是什么时区偏移在您的语言环境中于01.01.1970生效?我猜的是+02小时。
您还应打印new Date(0L)
的结果并比较差异。或者确保在显示日期时将时区设置为UTC。
答案 1 :(得分:0)
我不知道你在那里做了什么,但我得到了正确的结果:
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);
输出: 1月1日00:00:20 GMT 1970年