[英]Date comparison in Java not valid
我需要比較 ArrayList 中包含的對象的屬性“日期”。 ArrayList 中包含的對象屬於“Books”類型,每本書都有一個發布日期。 日期以字符串格式給出。
public ArrayList<Book> group;
我所做的是:
public static Comparator<Book> ComparaisonDate = new Comparator<Book>() {
SimpleDateFormat data = new SimpleDateFormat("dd/mm/yyyy");
@Override
public int compare(Book l1, Book l2) {
try {
return data.parse(l1.launchingDate).compareTo(data.parse(l2.launchingDate));
} catch (ParseException e) {
throw new IllegalArgumentException(e);
}
}
};
public void sort(int option) {
Collections.sort(this.group, Book.ComparaisonDate);
}
當我添加日期為 01/08/2020 和 12/05/2020 的兩本書時,sort() 函數的結果是:
01/08/2020
12/05/2020
結果應該是: 12/05/2020
,然后01/05/2020
。從我所看到的,它的日子,而不是一個月或一年只比較。 你知道如何解決這個問題嗎? 謝謝
模式中的mm
代表 Minutes of the Hour,因此排序實際上是正確的。 你需要MM
。 有關有效模式,請參閱https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.