获取一个时间段中间天数和前后两天小时List

获取一个时间段中间天数和前后两天小时List


    private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");

    private static final DateTimeFormatter dfDay = DateTimeFormatter.ofPattern("yyMMdd");

    private static final DateTimeFormatter dfHours = DateTimeFormatter.ofPattern("yyMMddHH");

 /**
     * @Method: getHourList
     * @Author: taq
     * @Version: 1.0
     * @Description: 获取一个时间段中间天数和前后两天小时List
     */
    private List<String> getDayHourList(String start,String end){

        //获得时间点
        List<String> regexList = Lists.newCopyOnWriteArrayList();

        //开始时间
        LocalDateTime beginTime = LocalDateTime.parse(start, dateTimeFormatter);
        //结束时间
        LocalDateTime endTime = LocalDateTime.parse(end, dateTimeFormatter);

        int startDay = beginTime.getDayOfYear();
        int endDay = endTime.getDayOfYear();

        if (beginTime.isBefore(endTime)) {


            //不断加一个小时,直到当天结束
            while (beginTime.getDayOfYear() == startDay) {

                //正则截取到小时
                regexList.add( dfHours.format(beginTime));
                beginTime = beginTime.plusHours(1);


            }

            //截取中间的时间点
            while (beginTime.getDayOfYear() - startDay >= 1 && beginTime.getDayOfYear() < endDay) {
                //截取到天
                regexList.add(dfDay.format(beginTime));
                beginTime = beginTime.plusHours(24);


            }

            //截取最后的时间点
            while (endDay == beginTime.getDayOfYear() && beginTime.getHour() <= endTime.getHour()) {
                //截取到小时
                regexList.add(dfHours.format(beginTime));

                beginTime = beginTime.plusHours(1);


            }
        }

        log.info("regexList is {}", regexList);
        return regexList;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值