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;
        }

}

控制台打印结果:

  

原文地址:https://www.cnblogs.com/fuzongle/p/11941586.html