分割时间工具

根据开始时间和结束时间 分割成若干随机时间

 public static List<PullUserConfigEntity> randomDateBySize(String start,String end,int size,Long id) throws ParseException {
        //输入 随机起始时间
        //解析时间
        Date d1 = simpleDateFormat.parse(start);
        long before = d1.getTime();
        //获取当前时间
        Date d2 = simpleDateFormat.parse(end);
        long after = d2.getTime();

        long randomDate = after-before;
        int[] randomArray = RandomUtils.getRandomArray((int) randomDate, size);
        List<PullUserConfigEntity>list=new ArrayList<>();
        for(int index:randomArray){
            PullUserConfigEntity pullUserConfig=new PullUserConfigEntity();

            pullUserConfig.setStartTime(TimeUtils.dateToStrLong(d1));
            d1.setTime(d1.getTime()+index);
            pullUserConfig.setEndTime(TimeUtils.dateToStrLong(d1));
            pullUserConfig.setId(id);
            list.add(pullUserConfig);
        }
        return list;
    }

根据开始时间和结束时间和固定间隔时间 分割成多个时间

 /**
     * 获取固定间隔时刻集合
     * @param start 开始时间
     * @param end 结束时间
     * @param interval 时间间隔(单位:分钟)
     * @return
     */
    public static List< RobotConfigRelEntity> getIntervalTimeList(String start,String end,int interval,Long id){
        Date startDate = convertString2Date("yyyy-MM-dd HH:mm:ss",start);
        Date endDate = convertString2Date("yyyy-MM-dd HH:mm:ss",end);
        List< String> s = new ArrayList<>();
        while(startDate.getTime()<=endDate.getTime()){
            s.add(convertDate2String("yyyy-MM-dd HH:mm:ss",startDate));
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(startDate);
            calendar.add(Calendar.SECOND,interval);
            if(calendar.getTime().getTime()>endDate.getTime()){
                if(!startDate.equals(endDate)){
                    s.add(convertDate2String("yyyy-MM-dd HH:mm:ss",endDate));
                }
                startDate = calendar.getTime();
            }else{
                startDate = calendar.getTime();
            }

        }

        List<RobotConfigRelEntity> list = new ArrayList();
        for (int i = 0; i < s.size();i++ ) { //s.length=6,0+1,2+3,4+5
            RobotConfigRelEntity configRel=new RobotConfigRelEntity();
            if(i==0){
                configRel.setStartTime(s.get(i));
                configRel.setEndTime(s.get(i+1));
            }else{
                configRel.setStartTime(s.get(i-1));
                configRel.setEndTime(s.get(i));
                configRel.setRelationId(id);
                list.add(configRel);
            }

        }
        return list;
    }


    public static Date convertString2Date(String format, String dateStr) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
        try {
            Date date = simpleDateFormat.parse(dateStr);
            return date;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }

    public static String convertDate2String(String format,Date date) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
        return simpleDateFormat.format(date);
    }

判断当前时间是否在开始和结束时间范围

 /**
     * 判断当前时间是否在[startTime, endTime]区间,注意三个参数的时间格式要一致
     * @param nowTime
     * @param startTime
     * @param endTime
     * @return 在时间段内返回true,不在返回false
     */
    public static boolean isEffectiveDate(String startTime, String endTime) throws ParseException {

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String now = sdf.format(new Date());
        Date nowTime = sdf.parse(now);
        Date startTime1 = sdf.parse(startTime);
        Date endTime1 = sdf.parse(endTime);

        if (nowTime.getTime() == startTime1.getTime()
                || nowTime.getTime() == endTime1.getTime()) {
            return true;
        }

        Calendar date = Calendar.getInstance();
        date.setTime(nowTime);

        Calendar begin = Calendar.getInstance();
        begin.setTime(startTime1);

        Calendar end = Calendar.getInstance();
        end.setTime(endTime1);

        return date.after(begin) && date.before(end);
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值