日付の昇順にソートしようとしているJava Dateオブジェクトが多数あります。Java Dateオブジェクトをソートして比較すると、予期しない結果が発生する
英国の形式「dd/mm/yy HH:ss」の単純な日付フォーマッタを使用してCSVからロードされ、同じ形式で出力されます。
new SimpleDateFormat("dd/mm/yy HH:ss", Locale.ENGLISH);
これは正しく動作します。
しかし、これらを(Comparatorインターフェイスを実装して)ソートしようとすると、これらは一見米国日付形式(mm/dd/yy)で誤ってソートされます。
public int compare(CSVEntry t, CSVEntry t1) {
if (t.date.before(t1.date))
return -1;
else if (t.date.after(t1.date))
return 1;
else
return 0;
}
これは関係なく、私は(Date.after()またはDate.before()またはDate.compareTo)を使用してどの方法にかかわらず、ロケールに設定されているものです。
私が使用してローカルシステムのデフォルトを設定しようとしました:効果なしに
Locale.setDefault(Locale.ENGLISH);
。
アイデア?