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。
我需要比较 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。