Java中传入一个时间范围,取出该时间范围内所有日期的集合
直接上代码:
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; } }
控制台打印结果: