1

在我的android应用程序中,我需要找出哪个日期更大或更小。我使用了以下代码。此代码运行良好,但有时会显示错误的输出。请帮助

    String strDate1 = "3/9/2013";   
    String strDate2 = "4/6/2013";   

    SimpleDateFormat sdf = new SimpleDateFormat( "m/d/yyyy" );   
    java.util.Date d1;
    java.util.Date d2;
    try {
        d1 = sdf.parse( strDate1 );
        d2 = sdf.parse( strDate2 );   
        if  ( d1.after(d2))  
        {   
              System.out.println( "d1 is after d2" ); 
        }   
        else if  ( d1.before(d2) )
        {   

           System.out.println( "d1 is before d2" ); 
        }   
        else  
        {   
           System.out.println( "d1 is equal to d2" );   
        }  

    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }   

对于上面的代码,我得到的输出是“d1 在 d2 之后”。但真正的事情是“d1 在 d2 之前”。如果我在这方面犯了任何错误,请提出建议。

4

4 回答 4

5

您使用了错误的月份格式。

SimpleDateFormat sdf = new SimpleDateFormat( "M/d/yyyy" );

m是小时的分钟数 M是年的月数

于 2013-04-09T09:10:23.367 回答
0

尝试将您的日期格式更改为以下

SimpleDateFormat sdf = new SimpleDateFormat( "M/d/yyyy" );
于 2013-04-09T09:11:26.270 回答
0

您需要使用Mm.

SimpleDateFormat sdf = new SimpleDateFormat( "M/d/yyyy" );   
于 2013-04-09T09:13:07.960 回答
0

SimpleDateFormat这显示小 m 代表分钟,大写 M 代表月份,因此请尝试更改它。

于 2013-04-09T09:14:41.083 回答