两个日期之间的日子比较 - >更简单的方法?

eav*_*eav 4 java comparison calendar date

嗨,我问自己是否有更简单的方法来获得两个日期之间的天数.

我只想要几天,而不是看小时或分钟.

因此,如果今天是星期一,我要比较的日期是星期三,之间的日子是2(时间无关紧要)

因此我使用此代码:

        Calendar c = Calendar.getInstance();
        // Only the day:
        c.set(Calendar.HOUR, 0);
        c.set(Calendar.MINUTE, 0);
        c.set(Calendar.SECOND, 0);
        c.set(Calendar.MILLISECOND, 0);

        Calendar to = Calendar.getInstance();
        to.setTime(date);
        to.set(Calendar.HOUR, 0);
        to.set(Calendar.MINUTE, 0);
        to.set(Calendar.SECOND, 0);
        to.set(Calendar.MILLISECOND, 0);
        date = to.getTime();

        long millsPerDay = 1000 * 60 * 60 * 24;

        long dayDiff = ( date.getTime() - dateToday.getTime() ) / millsPerDay;
Run Code Online (Sandbox Code Playgroud)

在这段代码之后,我有一个叫做dayDiff的日子.但是否真的必要,使日期的日历,设定时间为00:00:00:00和保存to.getTime()date

编辑:使用joda-time后:joda-time是否也可以获取有关日期的信息,例如:差异== 1 ==>明天,或差异== -1 ==>昨天或我必须做什么手动吗?

npi*_*nti 7

您可以使用JodaTime API如图所示这里.


use*_*and 7

对于指定的任务,我总是使用这种方便的方法:(没有lib,只是Java 5 API)

import java.util.concurrent.TimeUnit;

Date d1 = ...
Date d2 = ...

long daysBetween = TimeUnit.MILLISECONDS.toDays(d2.getTime() - d1.getTime());
Run Code Online (Sandbox Code Playgroud)

请享用!