Java中的日期比较无效

用户123

我需要比较ArrayList中包含的对象的“日期”属性。ArrayList中包含的对象的类型为“ Books”,并且每个Book都有启动日期。日期以字符串格式给出。

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从我所看到的来看,它仅比较日期而不是月份或年份。您知道如何解决此问题吗?谢谢

马丁C.

mm模式中的“小时”表示“小时”,因此排序实际上是正确的。你需要MM有关有效模式,请参见https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章