Java 从列表集合中排序日期和时间

Java 从列表集合中排序日期和时间,java,sorting,Java,Sorting,对列表集合中的日期和时间进行排序。上面的代码只适用于日期,我需要按降序处理日期和时间 AssignDate是java util日期,时间是字符串 for(AssignmentHistoryModal historyModal:modals){ Collections.sort(historyModal.getAssignmentModals(), new Comparator<AssignmentModal>() {

对列表集合中的日期和时间进行排序。上面的代码只适用于日期,我需要按降序处理日期和时间

AssignDate是java util日期,时间是字符串

for(AssignmentHistoryModal historyModal:modals){
                Collections.sort(historyModal.getAssignmentModals(), new Comparator<AssignmentModal>() {
                    @Override
                    public int compare(AssignmentModal a1, AssignmentModal a2) {

                        return (a2.getAssignDate().compareTo(a1.getAssignDate())) & a2.getTime().compareTo(a1.getTime());
                    }
                });
            }
for(AssignmentHistoryModal历史模态:模态){
Collections.sort(historyModal.getAssignmentModals(),new Comparator()){
@凌驾
公共整数比较(赋值模式a1、赋值模式a2){
返回(a2.getAssignDate().compareTo(a1.getAssignDate())&a2.getTime().compareTo(a1.getTime());
}
});
}

逻辑如下:

  • 首先比较日期。如果它们不相等(即compareTo返回0),则返回该值

  • 如果日期相等,请使用
    SimpleDateFormat
    将时间字符串转换为两个
    Date
    对象。返回这些日期对象的compareTo


  • 什么是
    getassignDate
    getTime
    返回的?Java
    Date
    值是可比较的。您认为
    &
    的意思是什么?请参考:Java.util.Date有一个getTime方法,它将返回日期的长时间戳。可以在您的Collection.sort方法中进行比较。因此,通过比较时间,即毫秒,您将能够使用时间对任何日期进行排序。时间字符串的格式是什么?时间格式hhh:mm agetTime和getAssignDate不是同一个函数。它们返回什么?什么类型的物体?