我需要比较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
从我所看到的来看,它仅比较日期而不是月份或年份。您知道如何解决此问题吗?谢谢
mm
模式中的“小时”表示“小时”,因此排序实际上是正确的。你需要MM
。有关有效模式,请参见https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句