排序 LocalDateTime

Sorting 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)被忽略了吗?

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

Collections.sort(data);

查看 isAfter() and isBefore()。单击文档。 也许尝试处理你的缩进,我有点不确定 if 子句中的内容。甚至可以尝试在单行代码前使用大括号 {},但这是个人喜好问题。

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

public int compare(Object obj1, Object obj2) {
 return obj2.getInnerObj().getLocalDateTime().compareTo(obj1.getInnerObj().getLocalDateTime());  }

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

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