try {
Date sysDate = new SimpleDateFormat("dd/mm/yyyy").parse(_sysDate);
Date userDate = new SimpleDateFormat("dd/mm/yyyy").parse(_userDate);
if (userDate.compareTo(sysDate) > 0)
return false;
else
return true;
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
上面是我的以下代码片段,用于检查两个日期是否更长。
当我给:
sysdate = 12/9/2012和userdate = 11/9/2012或10/8/2012或15/9/2011,它给出了正确的输出
但是当我给:
sysdate = 12/9/2012和userdate = 13/8/2012或15/7/2012或16/6/2012,表示输出不正确。
根据我的分析,如果我选择从12月1日到12月8日之间的某个月份,并且选择的day_of_month(即0,1,2,...,31)比当前的day_of_month(在本例中为12)多,就到了这一点),我总是得到不正确的输出。
请提出任何可能的解决方案。
最佳答案
问题在于模式应为“ dd / MM / yyyy”(大写的“ MM”表示月份),而不是“ dd / mm / yyyy”(的小“ mm”表示分钟)。
因此,应如下所示-
try {
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Date sysDate = df.parse(_sysDate);
Date userDate = df.parse(_userDate);
//...