>更简单的方法?

嗨,我问自己,如果有一个更简单的方法来获得两个日期之间的天数。

我只想要这些日子,而不需要看时间或分钟。

因此,如果今天是星期一,并且我想比较的日期是星期三,那么这两天之间的时间是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;

在这段代码之后,我有一个叫做dayDiff的长日子。 但确实需要制作日期日历,请将时间设置为00:00:00:00并在date保存为to.getTime()

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


您可以使用JodaTime API,如下所示。


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

import java.util.concurrent.TimeUnit;

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

long daysBetween = TimeUnit.MILLISECONDS.toDays(d2.getTime() - d1.getTime());

请享用!


public long dayDiff(Date d1, Date d2) {
    final long DAY_MILLIS = 1000 * 60 * 60 * 24;
    long day1 = d1.getTime() / DAY_MILLIS;
    long day2 = d2.getTime() / DAY_MILLIS;
    return (day1 - day2);
}

对不起,我的疏忽

链接地址: http://www.djcxy.com/p/36665.html

上一篇: > easier way?

下一篇: How to use ThreeTenABP in Android Project