Java Collections.sort(<;StringDate>;,new Comparator)未正确比较日期
我有一个dd.MM.YYYY HH:MM格式的日期列表,存储为字符串。当我尝试对这些日期进行排序时,除了00小时和12小时的值外,所有值都已正确排序 数组以15分钟的间隔出现,所以在排序之后,我得到如下结果Java Collections.sort(<;StringDate>;,new Comparator)未正确比较日期,java,sorting,date,jodatime,Java,Sorting,Date,Jodatime,我有一个dd.MM.YYYY HH:MM格式的日期列表,存储为字符串。当我尝试对这些日期进行排序时,除了00小时和12小时的值外,所有值都已正确排序 数组以15分钟的间隔出现,所以在排序之后,我得到如下结果 00:15, 12:15, 00:30, 12:30, 00:45, 12:45, 1:00, 1:15, 1:30.... 下面是排序的代码 Collections.sort(dates, new Comparator<String>() { Date
00:15, 12:15, 00:30, 12:30, 00:45, 12:45, 1:00, 1:15, 1:30....
下面是排序的代码
Collections.sort(dates, new Comparator<String>() {
DateFormat f = new SimpleDateFormat("dd.MM.yyyy hh:mm");
@Override
public int compare(String o1, String o2) {
try {
return f.parse(o1).compareTo(f.parse(o2));
} catch (ParseException e) {
throw new IllegalArgumentException(e);
}
}
});
Collections.sort(日期、新比较器(){
DateFormat f=新的简化格式(“dd.MM.yyy hh:MM”);
@凌驾
公共整数比较(字符串o1、字符串o2){
试一试{
返回f.parse(o1).compareTo(f.parse(o2));
}捕获(解析异常){
抛出新的IllegalArgumentException(e);
}
}
});
请在此帮助我,我如何在您的
SimpleDateFormat
中继续执行此操作,使用HH
几个小时,而不是HH
:
DateFormat f = new SimpleDateFormat("dd.MM.yyyy HH:mm");
如报告中所述:
H小时(0-23)
小时(上午/下午1-12时)
@madop程序员正在将字符串解析为Date
对象,然后再进行比较。@RobbyCornelissen True,请查看比较器
谢谢,我会尝试一下。。。那是我力所能及的