分组Java 8个日期间隔

Grouping Java 8 Dates in intervals

使用Java 8 java.time框架,Dates如何分组成区间? 比如每10分钟为一个间隔,给定一个列表 LocalTime

List<LocalTime> list = Arrays.asList(LocalTime.of(0,9),LocalTime.of(0,11),LocalTime.of(0,19));

如果以10分钟为间隔分组,LocalTime.of(0,9)应该在第一组,但LocalTime.of(0,11),LocalTime.of(0,19)在第二组。

使用Java 8次API,可以很方便的完成:

Map<Integer, List<LocalTime>> map = 
     list.stream()
          .collect(Collectors.
                 groupingBy(x -> x.get(ChronoField.MINUTE_OF_DAY) / 10)
                  );

此示例将使用 LocalTime 并将您的帖子分组为 10 分钟一组。

注意:这原本是对 Java 8 complex custom collector 的回答,但由于它没有解决 OP 问题,并且得到了一些赞成票,所以我将其删除并为其写了一个问题。根据 JodaStephen 的评论更改了调用顺序