根据开始时间和结束时间 分割成若干随机时间
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+5RobotConfigRelEntity 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);}