Java8 Collectors.groupingBy

Nuñ*_*ada 6 collections java-8 java-stream

我想基于LocalDateTime对一个Collection进行分组,但我只想得到小时,而不是分钟,秒......

.collect(Collectors.groupingBy(cp -> getUpdateLocalDate())


public LocalDate getUpdateLocalDate() {
    return getUpdateDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
}
Run Code Online (Sandbox Code Playgroud)

但是我还需要Date,比如:2018-10-12T09:00:00不仅仅是小时

Ous*_* D. 5

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

 .collect(Collectors.groupingBy(cp -> cp.getUpdateLocalDateTime().truncatedTo(ChronoUnit.HOURS));
Run Code Online (Sandbox Code Playgroud)