首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java8 Collectors.groupingBy

Java8 Collectors.groupingBy
EN

Stack Overflow用户
提问于 2018-10-12 09:45:54
回答 2查看 126关注 0票数 7

我想groupingBy一个基于LocalDateTime的集合,但我只想得到时间,而不是分钟,秒.

代码语言:javascript
复制
.collect(Collectors.groupingBy(cp -> getUpdateLocalDate())


public LocalDate getUpdateLocalDate() {
    return getUpdateDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
}

但我也需要日期,比如:2018-10-12T09:00:00,而不仅仅是小时

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-12 09:47:05

请注意,LocalDate没有时区.相反,从方法LocalDateTime返回一个getUpdateLocalDate (可能也值得重命名),然后截断LocalDateTime实例。

代码语言:javascript
复制
 .collect(Collectors.groupingBy(cp -> cp.getUpdateLocalDateTime().truncatedTo(ChronoUnit.HOURS));
票数 6
EN

Stack Overflow用户

发布于 2018-10-12 10:00:15

As said by AomineLocalDate不包含任何时间信息,因此,必须更改方法以返回LocalDateTime

代码语言:javascript
复制
public LocalDateTime getUpdateLocalDateTime() {
    return getUpdateDate().toInstant()
        .atZone(ZoneId.systemDefault()).toLocalDateTime();
}

然后,您可以执行您的操作

代码语言:javascript
复制
.collect(Collectors.groupingBy(cp ->
    cp.getUpdateLocalDateTime().truncatedTo(ChronoUnit.HOURS))
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52776802

复制
相关文章

相似问题

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