Java中的日期比较无效



我需要比较属性"日期";ArrayList中包含的对象的数目。包括在ArrayList中的对象是";书籍"每本书都有发行日期。日期以字符串格式给出。

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);
}

当我添加两本日期为:2020年8月1日和2020年5月12日的书时,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有效模式。

相关内容

  • 没有找到相关文章

最新更新