获取两个日期之间的日期形成一个集合

本文介绍了一个实用的方法来生成指定日期范围内的所有日期,并提供了两种实现方式:一种接收字符串格式的起止日期,另一种直接使用Date对象。每种方法都利用Java的SimpleDateFormat和Calendar类来迭代日期并将其添加到列表中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 * @param start  起始日期
 * @param end   结束日期
 * @return
 */
public static List<String> getDate(String start,String end){ //
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    List<String> list = new ArrayList<String>(); //保存日期集合
    try {
        Date date_start = sdf.parse(start);
        Date date_end = sdf.parse(end);
        Date date =date_start;
        Calendar cd = Calendar.getInstance();//用Calendar 进行日期比较判断
        while (date.getTime()<=date_end.getTime()){
            list.add(sdf.format(date));
            cd.setTime(date);
            cd.add(Calendar.DATE, 1);//增加一天 放入集合
            date=cd.getTime();
        }
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return list;
}



OR
/**
     * @param date_start  起始日期
     * @param date_end   结束日期
     * @return
     */
    public static List<Date> getDate(Date date_start,Date date_end){ //
        List<Date> list = new ArrayList<Date>(); //保存日期集合
        Date date =date_start;
        Calendar cd = Calendar.getInstance();//用Calendar 进行日期比较判断
        while (date.getTime()<=date_end.getTime()){
            list.add(date);
            cd.setTime(date);
            cd.add(Calendar.DATE, 1);//增加一天 放入集合
            date=cd.getTime();
        }
        return list;
    }

 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值