如何在java或groovy中找到两个日期之间的天数?

2022-09-04 23:51:20

我有一个使用以下逻辑来计算天与日之间的差异的方法。

long diff = milliseconds2 - milliseconds1;
long diffDays = diff / (24 * 60 * 60 * 1000);

但我想为前任,应该返回我天,无论秒或毫秒考虑。我怎样才能做到这一点?9th feb 2011 to 19th feb 201111


答案 1

对于您要求的时髦解决方案,您应该考虑使用以下命令:

use(groovy.time.TimeCategory) {
   def duration = date1 - date2
   println "days: ${duration.days}, Hours: ${duration.hours}"
}

它非常容易理解,可读性极强。您要求举例说明如何在计算两个日期之间的日期的简单方法中使用它。这是你的例子。

class Example {

    public static void main(String[] args) {
        def lastWeek = new Date() - 7;
        def today = new Date()

        println daysBetween(lastWeek, today)
    }

    static def daysBetween(def startDate, def endDate) {
        use(groovy.time.TimeCategory) {
            def duration = endDate - startDate
            return duration.days
        }
    }
}

如果运行此示例,它将打印您 。您还可以通过使用 和 启用反转日期来增强此方法。7before()after()


答案 2

这是一个破旧的线,但对于日期使用JodaTime

下面介绍如何使用 JodaTime 计算日期间隔

Days days = Days.daysBetween(new DateTime(millis1), new DateTime(millis2));
int daysBetweenDates = days.getDays();

推荐