开发需求需要展示前端传过来的时间范围内的每一天/月/年
String dayStartTime = "2024-05-21 00:00:00";String dayEndTime = "2024-05-25 00:00:00";
根据字符串传长度或者前端另外传递的时间类型标识(例如day\month\year)进行判断后就可以使用下面的工具类进行处理
输出结果:
/**
* 获取一段时间内每一天
* @param startTime
* @param endTime
* @return 2024-05-24
*/
public List<String> getDayBetween(String startTime, String endTime) {
//格式化
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// 声明保存日期集合
List<String> dateList = new ArrayList<>();
try {
// 转化成日期类型
Date startDate = sdf.parse(startTime);
Date endDate = sdf.parse(endTime);
//用Calendar 进行日期比较判断
Calendar calendar = Calendar.getInstance();
calendar.setTime(startDate);
while (!calendar.getTime().after(endDate)) {
// 把日期添加到集合
dateList.add(sdf.format(calendar.getTime()));
//把日期增加 1
calendar.add(Calendar.DAY_OF_MONTH, 1);
}
} catch (Exception e) {
e.printStackTrace();
}
return dateList;
}
/**
* 获取一段时间内每月份
* @param startTime
* @param endTime
* @return 2024-05
*/
public List<String> getMonthBetween(String startTime, String endTime){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
// 声明保存日期集合
List<String> list = new ArrayList<>();
try {
// 转化成日期类型
Date startDate = sdf.parse(startTime);
Date endDate = sdf.parse(endTime);
//用Calendar 进行日期比较判断
Calendar calendar = Calendar.getInstance();
calendar.setTime(startDate);
while (!calendar.getTime().after(endDate)) {
// 把日期添加到集合
list.add(sdf.format(calendar.getTime()));
//把月数增加 1
calendar.add(Calendar.MONTH, 1);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
/**
* 获取一段时间内每年
* @param startTime
* @param endTime
* @return 2024
*/
public List<String> getYearBetween(String startTime, String endTime){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
// 声明保存日期集合
List<String> list = new ArrayList<>();
try {
// 转化成日期类型
Date startDate = sdf.parse(startTime);
Date endDate = sdf.parse(endTime);
//用Calendar 进行日期比较判断
Calendar calendar = Calendar.getInstance();
calendar.setTime(startDate);
while (!calendar.getTime().after(endDate)) {
// 把日期添加到集合
list.add(sdf.format(calendar.getTime()));
//把年数增加 1
calendar.add(Calendar.YEAR, 1);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}