首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我正在对java中的日期列表进行反向或自然顺序的排序,但它是按年份分组的。

我正在对java中的日期列表进行反向或自然顺序的排序,但它是按年份分组的。
EN

Stack Overflow用户
提问于 2020-07-18 20:39:45
回答 1查看 212关注 0票数 1

列表中的日期格式为mm/dd/yyyy

当我使用stream以逆序对它们进行排序时,

代码语言:javascript
复制
sortedList = csvList.stream().sorted(Comparator.reverseOrder())
.collect(Collectors.toList())

日期按相反顺序排序,但日期先排序2019,然后排序2020,如下所示

代码语言:javascript
复制
12/16/2019, 12/11/2019, 11/11/2019, 10/28/2019, 07/17/2020/, 07/15,2020, 06/27/2020/, 06/18/2020

我希望日期排序如下

代码语言:javascript
复制
07/17/2020/, 07/15,2020, 06/27/2020/, 06/18/2020,12/16/2019, 12/11/2019, 11/11/2019, 10/28/2019

有人能帮我解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2020-07-18 21:21:15

下面的lamda函数将按排序顺序给出结果。

代码语言:javascript
复制
List<String> csvList = List.of("02/12/2002", "12/16/2019", "12/11/2019", "11/11/2019", "10/28/2019", "07/17/2020", "07/15/2020", "06/27/2020", "06/18/2020");
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
csvList.stream().sorted((d1, d2) -> LocalDate.parse(d1, formatter)
    .compareTo(LocalDate.parse(d2, formatter))).collect(Collectors.toList());

PS:您的日期格式不正确,它可能会throw parsing exception

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

https://stackoverflow.com/questions/62968692

复制
相关文章

相似问题

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