2015-09-17 4 views
0

Как отсортировать LocalDateTime объектов?Сортировка LocalDateTime

Я попытался следующие:

Comparator<Data> comparator = new Comparator<Data>() { 
    @Override 
    public int compare(final data o1, final data o2) { 
     if (o1.getDate()== null || o2.getDate() == null) 
      return 0; 
     return o1.getDate().compareTo(o2.getDate()); 
    } 
}; 

Collections.sort(comments, comparator); 

После тестирования я думаю, что он сортирует по дате, но это время часть (HH: MM: SS) игнорируется?

+3

Пожалуйста, покажите короткую, но * полную * программу, демонстрирующую проблему - в идеале следуя соглашениям об именах Java. (Похоже, что 'data' - это имя как типа, так и переменной в вашем примере кода - это невероятно запутанно.) Я бы также предположил, что если' getDate() 'является методом, возвращающим' LocalDateTime', это довольно плохо названо ... –

ответ

10

Как классы JodaTime, так и JDK 8 LocalDateTime реализуют интерфейс Comparable, поэтому вы можете отсортировать их по их естественному заказу. Просто сделайте

Collections.sort(data); 
+0

данные ArrayList ,, sorry my bad –

+0

@AbdullahAsendar Если этот ответ разрешает ваш вопрос, пожалуйста, примите его. Нажмите на большой пустой флажок, найденный кнопками «вверх-вниз» и «вниз». –

1

Отъезд isAfter() и isBefore(). Нажмите «Документы». И, возможно, попытайтесь работать с вашим отступом, я был немного не уверен в том, что находится внутри предложения if. Возможно, даже попытайтесь использовать фигурные скобки {} даже для однострочных, но это вопрос личных предпочтений.