代码之家  ›  专栏  ›  技术社区  ›  AbhiRam

如何根据日期和时间对数组列表中的未来事件排序

  •  -1
  • AbhiRam  · 技术社区  · 6 年前

    如何对下面的列表进行排序?因此,这些值是根据日期和时间排序的,排序后的预期输出应该如下所示

    27-08-2018 15:20:12
    
    27-08-2018 12:20:10
    
    26-08-2018 10:20:20
    

    我的代码:-

         EventObject eventObject1 = new EventObject;
            eventObject1.setDateAndTime("27-08-2018 15:20:12")
            eventObject1.name("name1")
            EventArrayList.add(eventObject1)
    
            EventObject eventObject2 = new EventObject;
            eventObject2.setDateAndTime("27-08-2018 12:20:10")
            eventObject2.name("name2")
            EventArrayList.add(eventObject2)
    
            EventObject eventObject3 = new EventObject;
            eventObject3.setDateAndTime("26-08-2018 10:20:20")
            eventObject3.name("name2")
            EventArrayList.add(eventObject3)
    
     if (EventArrayList.size() > 0) {
                    Collections.sort(EventArrayList, new Comparator<AuditListChildObject>() {
                        @Override
                        public int compare(final EventObject object1, final EventObject object2) {
                            return object1.getDateAndTime().compareTo(object2.getDateAndTime());
                        }
                    });
                }
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Ratilal Chopda    6 年前

    试试这个

     Collections.sort(EventArrayList, new Comparator<EventObject>() {
            @Override
            public int compare(EventObject o1, EventObject o2) {
                if (o2.getDateAndTime() == null || o1.getDateAndTime() == null)
                return 0;
                return o2.getDateAndTime().compareTo(o1.getDateAndTime());
            }
    
    
        });
    
        2
  •  0
  •   Norbert    6 年前

    你考虑过把字符串解析成日期对象吗?

    dateString = "27-08-2018 15:20:12"
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
    Date date = dateFormat.parse(dateString);
    

    日期对象应该是可比较的,因此可以用

    Collections.sort(arrayOfDateObjects)