-3

同じパターンを持っている場合、2 つの日付を比較する最も簡単な方法。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date1 = sdf.parse("2009-12-31");
        Date date2 = sdf.parse("2010-01-31");

        System.out.println(sdf.format(date1));
        System.out.println(sdf.format(date2));

        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");
        }

異なるパターンを持つ 2 つの日付を比較したい。

たとえば。

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date date1 = sdf.parse("2009-12-31");
 SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy");
    Date date2 = sdf2.parse("12/12/2012");

どうすれば同じことができますか

4

3 に答える 3

2

同じ方法で日付を比較できます。SimpleDateFormat日付をさまざまな形式で出力する (または解析する) 方法にすぎません。Java はそれらを理解し、書式設定に関係なく日付として比較できます。

于 2013-04-08T08:12:00.547 に答える
1

2 つの異なる形式の 2 つの異なる日付を解析した後でも、parse()メソッドの出力はどちらの場合も標準java.util.Dateオブジェクトになります。なので、普通に比較できます。

java.util.Dateどちらの場合も最後に2つのオブジェクトがあり、それらを比較することはすべての場合で同じであるため、それらが解析された形式は問題ではありません。

于 2013-04-08T08:13:07.793 に答える
1

sdf を sdf2 に置き換えました

このコードに変更すると動作します:

        SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy");
        Date date2 = sdf2.parse("12/12/2012");

sdf2 の代わりに間違った参照 sdf を使用しました

于 2013-04-08T08:16:42.840 に答える