Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Collections.sort(<;StringDate>;,new Comparator)未正确比较日期_Java_Sorting_Date_Jodatime - Fatal编程技术网

Java Collections.sort(<;StringDate>;,new Comparator)未正确比较日期

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

我有一个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>() {
            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,请查看
比较器
谢谢,我会尝试一下。。。那是我力所能及的