直接上代码:
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.List;
import java.util.Optional;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException; import java.text.DateFormat;
import java.text.SimpleDateFormat; /**
*
* @description: Java中传入一个时间段,取出该时间段内所有日期的集合
* @author: fuzongle
* @Date: 2019-11-22 16:06
*
*/
public class Demo01 { public static void main(String[] args) throws Exception { findDates("2018-02-12","2018-11-25"); } public static List<String> findDates(String dBegin, String dEnd) throws ParseException, java.text.ParseException {
//日期工具类准备
DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); //设置开始时间
Calendar calBegin = Calendar.getInstance();
calBegin.setTime(format.parse(dBegin)); //设置结束时间
Calendar calEnd = Calendar.getInstance();
calEnd.setTime(format.parse(dEnd)); //装返回的日期集合容器
List<String> Datelist = new ArrayList<String>();
//将第一个月添加里面去
Datelist.add(format.format(calBegin.getTime()));
// 每次循环给calBegin日期加一天,直到calBegin.getTime()时间等于dEnd
while (format.parse(dEnd).after(calBegin.getTime())) {
// 根据日历的规则,为给定的日历字段添加或减去指定的时间量
calBegin.add(Calendar.DAY_OF_MONTH, 1);
Datelist.add(format.format(calBegin.getTime()));
} System.out.println(Datelist);
return Datelist;
} }
控制台打印结果: