需要将时间戳分成不同的日期

时间:2012-03-22 11:30:52

标签: java algorithm

我有一个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小时内,然后再重复。

    1. 我不确定的是,如果我的时间戳表示2012年3月12日下午16:57,那么我必须从2012年3月12日00:00 AM开始计算时间戳(currentDay)。我该怎么做?
    2. 我还需要检查给定时间戳是否在currentDay时间戳的24小时内。我该怎么做?

1 个答案:

答案 0 :(得分:1)

假设您可以忽略时区问题(例如,您拥有的所有时间都是UTC,而您不介意闰秒!)...

如果您将日期和时间转换为自某个参考日期(epoch time格式使用1/1/1970 00:00:00)以来的秒数,则您可以将秒整数除以一天中的秒数)将其转换为表示天数的整数。

要检查给定时间戳是否在同一天,您只需比较值/ 86400