如何了解特定日期过去的天数?我需要使用哪个包以及如何使用?
答案 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-分/分钟,一小时/小时的每天。有你的答案;)