日期间隔应该更大

时间:2013-03-24 19:12:41

标签: java

我有: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秒。 为什么会这样?怎么办?

2 个答案:

答案 0 :(得分:3)

你正在做的是new Date("difference between two dates")并且有时间 01.01.1970。但是什么时区偏移在您的语言环境中于01.01.1970生效?我猜的是+02小时。

您还应打印new Date(0L)的结果并比较差异。或者确保在显示日期时将时区设置为UTC。

答案 1 :(得分:0)

我不知道你在那里做了什么,但我得到了正确的结果:

http://ideone.com/dTbugh

    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年