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);
    //...

10-02 21:28