【发布时间】:2013-04-17 15:16:39
【问题描述】:
在执行这个简单的任务时遇到了一些麻烦。
基本上我想比较两个日期(一些较旧的日期与新的日期)。我想知道较早的日期是否超过 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。
【问题讨论】:
-
你肯定要比较绝对日期。
-
@user2266098 with month 我认为使用 abs() 可以,但是那一天呢,不同的月份有不同的天数:(
-
如果较早的日期是 21 日,而今天是 17 日,则计算 17 减去 21。您认为这是正数吗?
-
我认为您需要两个日期的月和日差异。看看JodaTime:joda-time.sourceforge.net/faq.html#datediff
标签: java date-comparison