在实现这个简单的任务时遇到一些困难。
基本上我想比较两个日期(一些旧日期与新日期)。我想知道较旧的日期是否超过 x 个月和 y 天。
int monthDiff = new Date().getMonth() - detail.getCdLastUpdate().getMonth();
int dayDiff = new Date().getDay() - detail.getCdLastUpdate().getMonth();
System.out.println("\tthe last update date and new date month diff is --> " + monthDiff);
System.out.println("\tthe last update date and new date day diff is --> " + dayDiff);
如果较早的日期是 2012-09-21 00:00:00.0,目前,它将返回负数。我需要查明旧日期是否正好比新日期()早 6 个月零 4 天。我正在考虑使用两者的绝对值,但今天无法思考。
编辑:我知道 joda,但我无法使用它。我必须使用Java JDK。 编辑2:我将尝试列出的方法,如果都失败我将使用Joda。
最佳答案
JDK dates有 before 和 after 方法,返回 boolean 值,来完成你的任务:
Date now = new Date();
Calendar compareTo = Calendar.getInstance();
compareTo.add(Calendar.MONTH, -6);
compareTo.add(Calendar.DATE, -4);
if (compareTo.getTime().before(now)) {
// after
} else {
// before or equal
}
关于java - 我应该如何正确比较两个日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16063888/