获取一个时间段中间天数和前后两天小时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;
}