我有一个Timestamps的ArrayList。我想将这个ArrayList拆分成几个ArrayLists广告,将它们放入按天分组的HashMap中。所以14-01-2011的所有时间戳都在一起,所有29-01-2012的时间戳都在一起,等等......
伪代码 -
myTimestampMap['21-03-2012'] = ArrayList { myTimestamp[0], myTimestamp[1], myTimestamp[2] };
myTimestampMap['22-03-2012'] = ArrayList { timeStmyTimestamp[3], myTimestamp[4]};
我知道以下算法可行 -
获取Timestamps ArrayList中的第一个值,找到它的'day'并将其分配给名为currentDay的变量(如果第一个时间戳是2012年3月12日14:26 PM,则分配给2012年3月12日00:00 AM到CURRENTDAY)。
现在遍历时间戳,如果getDay()不在currentDay + 24小时内,则分配currentDay = getDay()(在00:00 AM),在HashMap中创建一个新键并放入以下所有时间戳直到我们来到一个时间戳,再次getDay()不在currentDay + 24小时内,然后再重复。
答案 0 :(得分:1)
假设您可以忽略时区问题(例如,您拥有的所有时间都是UTC,而您不介意闰秒!)...
如果您将日期和时间转换为自某个参考日期(epoch time格式使用1/1/1970 00:00:00
)以来的秒数,则您可以将秒整数除以一天中的秒数)将其转换为表示天数的整数。
要检查给定时间戳是否在同一天,您只需比较值/ 86400
。