package com.lc.soft;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
* TODO
* 获取一个时间段所有小时时间数据集合
* @author wtt
* @version 1.0
* @date 2022/5/13 14:07
*/
public class sass {
/*public static void main(String[] args) {
String str = "yyyy-MM-dd HH:00:00";
System.out.println(LocalDateTime.now().plusHours(-1).format(DateTimeFormatter.ofPattern(str)));
}*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Calendar cal = Calendar.getInstance();
String start = "2016-01-01";
String end = "2016-12-30";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dBegin = sdf.parse(start);
Date dEnd = sdf.parse(end);
List<Date> lDate = findDates(dBegin, dEnd);
for (Date date : lDate) {
for (int i = 0; i <24 ; i++) {
if(i<10){
System.out.println(sdf.format(date)+" 0"+i+":00:00");
}else {
System.out.println(sdf.format(date)+" "+i+":00:00");
}
}
}
System.out.println("lDate大小:" + lDate.size());
}
//JAVA获取某段时间内的所有日期
public static List<Date> findDates(Date dBegin, Date dEnd) {
List lDate = new ArrayList();
lDate.add(dBegin);
Calendar calBegin = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calBegin.setTime(dBegin);
Calendar calEnd = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calEnd.setTime(dEnd);
// 测试此日期是否在指定日期之后
while (dEnd.after(calBegin.getTime())) {
// 根据日历的规则,为给定的日历字段添加或减去指定的时间量
calBegin.add(Calendar.DAY_OF_MONTH, 1);
lDate.add(calBegin.getTime());
}
return lDate;
}
}
运行效果如下