2016-02-06 54 views
1

我有時間戳的列表,並希望(基於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.什麼是最有效的方法做這個?

回答

2

假設的時間戳是從1/1/1970 UNIX第二偏移量,你可以只使用MOD功能桶時間戳:

long bucket = timestamp - (timestamp % 3600); 

這消除了過去的小時秒的任何數字在任何時間戳記。

+0

我不想要任何東西被刪除。相反,我想分組在一小時內的時間戳。正如我的問題所述.. – Christian

+1

你沒有刪除任何東西,你正在計算存儲桶中的條目。例如,現在在這裏是10:45。如果我想要小桶,那麼我需要一個10分鐘的桶來存放這個條目。同一個桶將有10:50和10:01的條目。另一個存儲桶11:00將包含11:32的條目。 – Carlos