按小时分组时间戳

时间:2016-02-06 22:23:57

标签: java

我有一个时间戳列表,并希望将它们分组为几小时(基于24小时)

示例:

List<Long> timestamps = new ArrayList<>();
//timestamps would contains 100 timestamps from over the last few days.

Now I want a map:
Map<String, List<Long>> groupedMap = new HashMap<>();

groupedMap would contain something like

{
   03.02.2015 - 12:00: [1234564321,1234564322,1234564323],
   03.02.2015 - 13:00: [12346664321,12346664323,12346664323]
}

我使用的是Java 8.最有效的方法是什么?

1 个答案:

答案 0 :(得分:3)

假设时间戳是从1970年1月1日开始的unix第二个偏移,你可以使用mod函数来填充时间戳:

long bucket = timestamp - (timestamp % 3600);

这将删除任何时间戳中小时数的任何秒数。