0

2つの日付を比較しようとしています。私の最初のデートは:

Date previousDate ="Returns a date as 2011-12-09 in a gregorian date"

2番目の日付は私の「現在の日付」であり、現在の日付を次のように取得しています。

SimpleDateFormat format = new SimpleDateFormat("yyyy/mm/dd");
Date date=new Date();

現在の日付と前の日付を比較しようとすると、年のみ (またはパターンの最初のもののみ) を比較できます。

System.out.println("date"+previousDate.compareto(format(date));

日付全体ではなく年のみを比較しているため、出力を「1」として取得できます。私が欠けているものを理解できる人はいますか.私は多くのアプローチを試みましたが、成功できませんでした.これでうまくいくか、別の解決策が必要かどうか教えてください.

ありがとう。

4

1 に答える 1

1

SimpleDateFormat(yyyy/mm/dd);

私はあなたが意味すると思います

SimpleDateFormat("yyyy/MM/dd");

ただし、重要な点は、慣例によりcompareTo、通常は -1、0、または 1 が返されるということです。

Date#compareTo の実装は次のとおりです。

974     public int compareTo(Date anotherDate) {
975         long thisTime = getMillisOf(this);
976         long anotherTime = getMillisOf(anotherDate);
977         return (thisTime<anotherTime ? -1 : (thisTime==anotherTime ? 0 : 1));
978     }
于 2012-09-27T15:52:44.887 に答える