0
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 日至 20 年 8 月之间的任何月份,并且选择的 day_of_month(即 0,1,2,...,31)多于当前 day_of_month(在本例中为 12 ),我总是得到不正确的输出。

请提出任何可能的解决方案。

4

3 回答 3

4

问题是模式应该是“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);
    //... 
于 2012-09-12T13:38:39.693 回答
1
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();
        }

日期模式是错误的dd/MM/yyyy而不是dd/mm/yyyy

于 2012-09-12T13:42:19.143 回答
-3

dd/MM/yyyy在 dd/mm/yyyy 的位置看到这种数据格式的变化。

http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html

于 2012-09-12T13:37:53.617 回答