对LocalDateTime进行排序

Abd*_*dar 2 java sorting datetime jodatime java-time

如何排序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);
Run Code Online (Sandbox Code Playgroud)

经过测试,我认为它根据日期排序,但时间部分(HH:MM:SS)被忽略了吗?

Ada*_*lik 18

JodaTime和JDK 8 LocalDateTime类都实现了Comparable接口,因此您可以使用它们的自然顺序对它们进行排序.做就是了

Collections.sort(data);
Run Code Online (Sandbox Code Playgroud)

  • @AbdullahAsendar 如果此答案解决了您的问题,请接受。点击向上投票和向下投票按钮找到的大空复选标记。 (2认同)

小智 6

有两种方法可以做到。如果日期属性在嵌套对象下,则使用比较器如下

public int compare(Object obj1, Object obj2) {
 return obj2.getInnerObj().getLocalDateTime().compareTo(obj1.getInnerObj().getLocalDateTime());  }
Run Code Online (Sandbox Code Playgroud)

如果对象的属性中的日期属性则

List<Object> sortedList = objectList.stream()
           .sorted(Comparator.comparing(Object :: getLocalDateTime).reversed())
           .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)