我怎样才能了解特定日期过去了多少天?

时间:2011-05-31 10:01:29

标签: java

如何了解特定日期过去的天数?我需要使用哪个包以及如何使用?

5 个答案:

答案 0 :(得分:6)

仅为协议 - 我喜欢java.util.concurrent.TimeUnit

Date d1 = ...
Date d2 = ...
long dif = d1.getTime() - d2.getTime();
long days = TimeUnit.MILLISECONDS.toDays(dif);

所以基本上就是来自morja的答案,但是使用TimeUnit来计算周围的时间。在您的代码中直接使用24,60等值会违反Java代码约定(它只允许代码中直接使用-1,0和1)并且更难阅读。

答案 1 :(得分:4)

编辑我之前的回答仅在一年内有效。

您可以使用这样的毫秒差异:

Date date1 = // some date
Date date2 = // some other date
long difference = date2.getTime() - date1.getTime();
long differenceDays = difference / (1000 * 60 * 60 * 24);

基本上和timbooo一样,只是一个较短的方式。

答案 2 :(得分:2)

查看kodejava.org的this示例

答案 3 :(得分:2)

Jodatime使这些计算变得更加简单:

Date now = // some Date
Date then = // some Date
int days = Days.daysBetween(new DateTime(now), new DateTime(then)).getDays();

答案 4 :(得分:-1)

实际上,您应该从两个日期创建Calendar的实例,从两个日期创建getTimeInMillis()(即自1970年以来的时间以毫秒为单位),从另一个减去1,除以1000 /秒-a-分/分钟,一小时/小时的每天。有你的答案;)