Java-如何检查两个日期值是否相隔X天
我试图删除数据库中日期(java.util.Date)比当前日期早10天的条目。有没有办法只比较日期内的“day”值。不仅要比较哪个日期值更大,还要确保两个日期值之间有X天。只需为当前日期+10天创建一个新的日期对象,并与之进行比较 i、 eJava-如何检查两个日期值是否相隔X天,java,date,Java,Date,我试图删除数据库中日期(java.util.Date)比当前日期早10天的条目。有没有办法只比较日期内的“day”值。不仅要比较哪个日期值更大,还要确保两个日期值之间有X天。只需为当前日期+10天创建一个新的日期对象,并与之进行比较 i、 e 正如评论所说,尽管日期对象现在已经非常过时,但您应该使用一种更为流行的时间方法。假设您有两个日期值,分别为time1和time2 int daysApart = (int)((time2.getTime() - time1.getTime()) / (10
正如评论所说,尽管日期对象现在已经非常过时,但您应该使用一种更为流行的时间方法。假设您有两个日期值,分别为
time1
和time2
int daysApart = (int)((time2.getTime() - time1.getTime()) / (1000*60*60*24l));
if (abs(daysApart) >= 10)
System.out.println("10+ days apart.");
else
System.out.println("Less than 10 days apart.");
您使用的是哪种数据库?日期是旧新闻。我会使用Calendar API,或者java 8中新的datetime API不使用Joda时间库,那么java 8中的java.time呢?那也出去了吗?请参阅或或链接到的问题@AlexandruCimpanu。搜索“Joda”和“plusDays”或“minusDays”将提供许多答案。我假设,如果时间1是晚上9点,时间2是10天之后的上午9点,它仍然希望匹配,这就是为什么存在
=
,而不仅仅是
的原因?你的整数除法是9天,而不是10天。由于time2在time1之后不到整整10天。(time2.getTime()/(1000*60*60*24l)-time1.getTime()/(1000*60*60*24l))这完全有效。我们提出的问题不是不到10天,而是相隔10天@Cruncher
int daysApart = (int)((time2.getTime() - time1.getTime()) / (1000*60*60*24l));
if (abs(daysApart) >= 10)
System.out.println("10+ days apart.");
else
System.out.println("Less than 10 days apart.");