首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >排序LocalDateTime

排序LocalDateTime
EN

Stack Overflow用户
提问于 2015-09-17 16:08:55
回答 3查看 30.2K关注 0票数 3

如何对LocalDateTime对象进行排序?

我尝试了以下几种方法:

代码语言:javascript
复制
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)被忽略了吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-17 16:14:28

JodaTime和JDK8 LocalDateTime类都实现了Comparable接口,因此您可以使用它们的自然顺序对它们进行排序。只管去做

代码语言:javascript
复制
Collections.sort(data);
票数 25
EN

Stack Overflow用户

发布于 2020-11-17 07:00:35

有两种方法可以做到这点。如果date属性位于嵌套对象下,则使用比较器,如下所示

代码语言:javascript
复制
public int compare(Object obj1, Object obj2) {
 return obj2.getInnerObj().getLocalDateTime().compareTo(obj1.getInnerObj().getLocalDateTime());  }

如果date属性位于object的属性,则

代码语言:javascript
复制
List<Object> sortedList = objectList.stream()
           .sorted(Comparator.comparing(Object :: getLocalDateTime).reversed())
           .collect(Collectors.toList());
票数 7
EN

Stack Overflow用户

发布于 2015-09-17 16:17:39

查看isAfter()isBefore()。单击文档的。也许可以试着缩进一下,我不太确定if子句里面是什么。甚至可能尝试在一行代码之前使用花括号{},但这是个人喜好问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32625407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档