如何在Java中将两个日期的差异添加到第三个日期?

时间:2011-07-26 21:40:16

标签: java date

我是Java的新手,我在谷歌和这个论坛上做了一些搜索,但我仍然不确定这是一个好方法。 (Joda时间不是我的选择)。

Date d1;
Date d2;
Date d3;
float a;

对我来说有什么好办法:

d3 + a - (d1 - d2);

我需要在d1和d2之间获得毫秒,然后将d3转换为日历以向其添加毫秒数吗?

谢谢!

编辑:我应该提到浮动a表示分钟数,例如a = 35.6分钟。

1 个答案:

答案 0 :(得分:4)

这取决于你所说的“差异” - 差异可以有方向或绝对。

如果要添加绝对间隙,请使用:

Date result = new Date(d3.getTime() + Math.abs(d2.getTime() - d1.getTime()));

如果你关心d2与d1相关(即如果d2在 d1之前你实际上减去了差距),那么使用:

Date result = new Date(d3.getTime() + d2.getTime() - d1.getTime());

<强>编辑:

在回复评论时,是:如果float a是分钟数,您可以进一步添加a * 60000以获得新的长数毫秒并从中创建新日期。