版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_36710456/article/details/82852168
...
import org.apache.commons.lang3.StringUtils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
* @Author: 带着大佬飞
* @Description: 日期范围转集合
* @Date: 2018/9/25
*/
public class DateParseUtil {
/**
* @Author: 带着大佬飞
* @Description: 日期范围转集合,年月日格式:"2012-02-01" 、 年月格式:"2012-02"
* @Date: 2018/9/25
* @param startData: 开始日期 eg: "2012-02-01" 、 "2012-02"
* @param endData: 结束日期 ge: "2012-03-02" 、 "2012-03"
* @Return: java.util.List<java.lang.String>
*/
public static List<String> dateParse(String startData, String endData){
List<String> resultList = new ArrayList<>();
if (StringUtils.isAnyBlank(startData,endData)){
return resultList;
}
SimpleDateFormat sdf ;
if ( startData.length()<10 ){
sdf = new SimpleDateFormat("yyyy-MM");
Date d1 = null;//定义起始日期
Date d2 = null;//定义结束日期
try {
d1 = sdf.parse(startData);
d2 = sdf.parse(endData);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar dd = Calendar.getInstance();//定义日期实例
dd.setTime(d1);//设置日期起始时间
while(dd.getTime().before(d2)){//判断是否到结束日期
String str = sdf.format(dd.getTime());
System.out.println(str);
resultList.add(str);
dd.add(Calendar.MONTH, 1);//进行当前日期月份加1
}
resultList.add(endData);
}else {
sdf = new SimpleDateFormat("yyyy-MM-dd");
Date dBegin = null;
Date dEnd = null;
try {
dBegin = sdf.parse(startData);
dEnd = sdf.parse(endData);
} catch (ParseException e) {
e.printStackTrace();
}
List<Date> 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());
}
for (Date date : lDate) {
// System.out.println(sdf.format(date));
resultList.add(sdf.format(date));
}
}
return resultList;
}
}
...