4

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

4

2 回答 2

3

你正在做的是new Date("difference between two dates")在 1970 年 1 月 1 日获得时间。但是在您的语言环境中,01.01.1970 生效的时区偏移量是多少?我猜+02小时。

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

于 2013-03-25T02:11:17.030 回答
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);

输出:1970 年 1 月 1 日星期四 00:00:20 GMT

于 2013-03-25T01:36:11.100 回答