直接上代碼:
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; } }
控制台打印結果: