资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Java

java获取两个时间之间的所有日期、月份、年份,返回列表

Java 更新时间: 发布时间: 计算机考试归档 最新发布

java获取两个时间之间的所有日期、月份、年份,返回列表

 需求描述

  • 输入开始时间和结束时间,获取时间范围内的所有日期,月份、年份

    (输入可以为"yyyy-MM-dd HH:mm:ss"或者"yyyy-MM-dd")

一、输入开始时间和结束时间,返回时间范围内中的所有日期列表

    public static List findEveryDay(String beginTime, String endTime)            throws Exception {        //创建一个放所有日期的集合        List dates = new ArrayList();        //创建时间解析对象规定解析格式        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");        //将传入的时间解析成Date类型,相当于格式化        Date dBegin = sdf.parse(beginTime);        Date dEnd = sdf.parse(endTime);        //将格式化后的第一天添加进集合        dates.add(sdf.format(dBegin));        //使用本地的时区和区域获取日历        Calendar calBegin = Calendar.getInstance();        //传入起始时间将此日历设置为起始日历        calBegin.setTime(dBegin);        //判断结束日期前一天是否在起始日历的日期之后        while (dEnd.after(calBegin.getTime())) {            //根据日历的规则:月份中的每一天,为起始日历加一天            calBegin.add(Calendar.DAY_OF_MONTH, 1);            //得到的每一天就添加进集合            dates.add(sdf.format(calBegin.getTime()));            //如果当前的起始日历超过结束日期后,就结束循环        }        return dates;    }

测试输出结果: 

 

二、输入开始时间和结束时间,返回时间范围内中的所有月份列表

    public static List getMonthBetweenDate(String startTime, String endTime) {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");        // 声明保存日期集合        List list = new ArrayList<>();        try {            // 转化成日期类型            Date startDate = sdf.parse(startTime);            Date endDate = sdf.parse(endTime);            //用Calendar 进行日期比较判断            Calendar calendar = Calendar.getInstance();            while (startDate.getTime() <= endDate.getTime()) {                // 把日期添加到集合                list.add(sdf.format(startDate));                // 设置日期                calendar.setTime(startDate);                //把月数增加 1                calendar.add(Calendar.MONTH, 1);                // 获取增加后的日期                startDate = calendar.getTime();            }        } catch (Exception e) {            e.printStackTrace();        }        return list;    }

 输入:"2022-07-01  00:00:00 "  "2022-10-27  23:59:59 "

返回结果:[2022-07,2022-08,2022-09,2022-10] 

三、输入开始时间和结束时间,返回时间范围内中的所有年份列表

    public static List getYearBetweenDate(String startTime, String endTime) {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");        // 声明保存日期集合        List list = new ArrayList<>();        try {            // 转化成日期类型            Date startDate = sdf.parse(startTime);            Date endDate = sdf.parse(endTime);            //用Calendar 进行日期比较判断            Calendar calendar = Calendar.getInstance();            while (startDate.getTime() <= endDate.getTime()) {                // 把日期添加到集合                list.add(sdf.format(startDate));                // 设置日期                calendar.setTime(startDate);                //把年数增加 1                calendar.add(Calendar.YEAR, 1);                // 获取增加后的日期                startDate = calendar.getTime();            }        } catch (Exception e) {            e.printStackTrace();        }        return list;    }

 输入:"2020-07-01  00:00:00 "  "2022-10-27  23:59:59 "

返回结果:[2020,2021,2022] 

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/1098447.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【java获取两个时间之间的所有日期、月份、年份,返回列表】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2