寻找日期差异

时间:2009-12-07 18:03:18

标签: java date

如果日期比另一天提前5天,那么有效的查找方式是什么?在比较之前,我是否需要先使用特定的SimpleDateFormat解析这两天?

9 个答案:

答案 0 :(得分:12)

最佳Java日期时间API为Joda Time。它使这些任务和其他任务比使用标准API更容易。

答案 1 :(得分:1)

最快,但最不准确的是,您可以将两者都放入java.util.Date,getTime()中,并将差异除以一天中的毫秒数。

您可以通过创建两个Calendar对象来使其更准确,并使用它们。

如果你真的想要解决这个问题,并且掌握好一些时间,请看看Joda Time。

答案 2 :(得分:1)

Calendar界面有一些不错的方法,包括beforeafterequals

答案 3 :(得分:0)

答案 4 :(得分:0)

Date date1 = // whatever
Date date2 = // whatever

Long fiveDaysInMilliseconds = 1000 * 60 * 60 * 24 * 5    
boolean moreThan5Days = Math.abs(date1.getTime() - date2.getTime()) > fiveDaysInMilliseconds 

答案 5 :(得分:0)

你可以做到

Long DAY_IN_MILLIS = 86400000;

if((dateA - dateB) > DAY_IN_MILLIS * 5) {
    // dateA is more than 5 days older than dateB
}

答案 6 :(得分:0)

如果您需要忽略日期的时间,您可以执行类似

的操作
    public static boolean compare5days(Date date, Date another) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(another);
        cal.add(Calendar.DATE, -5);

        // clear time 
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);

        return date.before(cal.getTime());
    }

答案 7 :(得分:-1)

days = (date2.getTime() - date1.getTime())/86400000L

答案 8 :(得分:-1)

days =(date2.getTime() - date1.getTime())