Java 中的日期比较无效

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 代表小时的分钟数,因此排序实际上是正确的。你需要MM。有关有效模式,请参阅 https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html