-2

重複の可能性:
Javaで日付を比較

サーバーからyyyy-MM-dd形式で2つの日付を取得しています。これら2つの日付を比較する必要があります。compareTo()メソッドを使用して2つの日付を比較しました。サーバーが常にyyyy-MM-dd形式でnull以外の値を返すと仮定して、2つの日付を比較するためのより簡単な方法は何ですか?

メソッドを定義する

void compareTwoDates(String startDate, String endDate){
        switch(startDate.compareTo(endDate)){
            case -1:
                //START DATE IS BIGGER THAN END DATE
                System.out.println(endDate+" IS BIGGER THAN "+startDate);
                break;
            case 0:
                //BOTH DATE ARE SAME
                System.out.println("SAME DATE");
                break;
            case 1:
                //END DATE IS BIGGER
                System.out.println(startDate+" IS BIGGER THAN "+endDate);
                break;
        }
    }

次の方法を使用してメソッドを呼び出します

compareTwoDates("2012-05-06", "2012-04-08");
compareTwoDates("2012-04-09", "2012-04-09");
compareTwoDates("2012-04-09", "2011-05-10");
4

4 に答える 4

2

メソッドDate.before()およびDate.after( ) を使用する

于 2012-04-09T12:01:59.563 に答える
1

このサンプルを確認してください。

       if(date1.after(date2)){
           System.out.println("Date1 is after Date2");
        }
        if(date1.before(date2)){
             System.out.println("Date1 is before Date2");
        }
        if(date1.equals(date2)){
             System.out.println("Date1 is equal Date2");
        }
于 2012-04-09T12:15:28.203 に答える
1

文字列を日付のように比較しないでください...そのアプローチから来るのは痛みと悲惨さだけです。

何かのようなもの:

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date d1 = sdf.parse("2012-04-04");
    Date d2 = sdf.parse("2012-04-05");

必要に応じて、日付のcompareToメソッドを使用できます。これは、年、月などのコンテキストを持たない文字列値としてではなく、比較されるはずの日付を比較します.

于 2012-04-09T12:02:30.670 に答える
0

java.util.Calendar クラスを使用します。前と後に作業を行います。

解析文字列には java.text.SimpleDateFormat を使用します

于 2012-04-09T12:02:22.387 に答える