构造小时和天数的时间Map并返回

构造小时和天数的时间Map并返回:

 有时候我们查询数据库数据的时候,按天数或者按小时查询的话,会出现某些天数或者小时没有数据的情况,这个时候我们就需要手动的去填充数据,下面的代码为构造一个以时间或者天数为键的Map,然后我们可以把查询出来的数据按时间加入到Map中,然后再去遍历Map,没有值的说明数据库没有查询到数据,然后进行数据的填充即可。
补充说明: 这里就是提供一个思路,简单来说就是用时间为键,来构造一个Map,可以用时间对应的时间戳,也可以用时间对应的字符串,只要能达到目的即可。

 public Map<Long, PassengerInfo> structureTimeMap(String startTime, String endTime, Integer mode) {
        SimpleDateFormat timeFormat = null;
        //格式化传入的时间,传入的字符串格式为yyyy-MM-dd HH:mm:ss,可以通过下面的方法进行天或者小时数据的格式化
        if (mode == 0) {
            timeFormat = new SimpleDateFormat("yyyy-MM-dd");
        } else {
            timeFormat = new SimpleDateFormat("yyyy-MM-dd HH");
        }
        Map<Long, PassengerInfo> map = new LinkedHashMap<>();
        try {
            Date date = timeFormat.parse(startTime);
            Long dayStart = date.getTime();
            date = timeFormat.parse(endTime);
            Long dayEnd = date.getTime();
            while (true) {
                if (dayStart >= dayEnd) {
                    map.put(dayStart, null);
                    break;
                }
                map.put(dayStart, null);
                if (mode == 0) {
                    //时间增加1天
                    dayStart += 86400000;
                } else {
                    //时间增加1个小时
                    dayStart += 3600000;
                }
            }
        } catch (ParseException px) {
            logger.error("客流数据查询构造map失败");
            px.printStackTrace();
        }
        return map;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值