java - 我应该如何正确比较两个日期?

标签 java date-comparison

在实现这个简单的任务时遇到一些困难。

基本上我想比较两个日期(一些旧日期与新日期)。我想知道较旧的日期是否超过 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/

相关文章:

java - 日期时间比较给出了不正确的结果

java - hibernate 和 jackson (java.lang.IllegalStateException : Cannot call sendError() after the response has been committed)

java - Android中如何绘制弯曲的文字

java - Lucene 按国家排序

java - 如何将日期字符串与当前日期进行比较?

php mail() 语句

java - 调用另一个文件的方法

java - J2ME : lock the device programmatically

r中向量和矩阵之间的行比较

mysql - 哪些索引在此查询中有用?