java:根据日期期间获取连续日期

该文章提供了一个Java方法,用于根据起始和终止日期生成日期范围内的连续日期字符串列表。通过使用`SimpleDateFormat`进行日期格式化,`Calendar`类添加日期以及循环,可以确保日期顺序并获取所有中间日期。测试代码展示了从2023-02-26到2023-03-02的日期序列。
摘要由CSDN通过智能技术生成

java:根据日期期间获取连续日期

1 前言:

给定起始、终止的日期,通过java实现获取连续的日期字符串,可通过c.add(Calendar.DATE, 1)循环获取结果。

2 使用:

public static List<String> getDatas(String startDay, String endDay){
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

    List<String> locals = new ArrayList<>();

    if(startDay == null || endDay == null){
        throw new RuntimeException("error");
    }

    try {
        Date startD = sdf.parse(startDay);
        Date endD = sdf.parse(endDay);
        if(!startD.before(endD)){
            throw new RuntimeException("startDay must before endDay");
        }

        Date startClone = (Date) startD.clone();
        while(!startClone.after(endD)){
            locals.add(sdf.format(startClone));
            Calendar c = Calendar.getInstance();
            c.setTime(startClone);
            c.add(Calendar.DATE, 1);
            startClone = c.getTime();
        }
    } catch (Throwable e) {
        throw new RuntimeException(e);
    }

    return locals;
}

测试代码:

List<String> datas = getDatas("2023-02-26", "2023-03-02");
datas.forEach(System.out::println);

执行结果如下:

2023-02-26
2023-02-27
2023-02-28
2023-03-01
2023-03-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值