美文网首页
获取时间区间内所有的年月集合

获取时间区间内所有的年月集合

作者: ip小怪兽 | 来源:发表于2020-04-02 01:32 被阅读0次

    在Java代码中如何获取一个String类型日期区间内的所有的年份、月份,并以List<String>格式输出

        /**
         * 获取时间段内所有的年月集合
         *
         * @param beginTime 最小时间 日期格式 yyyy-MM-dd 如:2019-01-15
         * @param endTime   最大时间 日期格式 yyyy-MM-dd 如:2019-05-03
         * @return 日期年月的集合 格式为 yyyy-MM 输出结果集[2019-01,2019-02,2019-03,2019-04,2019-05]
         */
    
        public List<String> getMonthBetween(String beginTime, String endTime) {
            String minDate = beginTime.substring(0, 7);     //yyyy-MM-dd  ->  yyyy-MM
            String maxDate = endTime.substring(0, 7);       //yyyy-MM-dd  ->  yyyy-MM
    
            ArrayList<String> result = new ArrayList<String>();
            try {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");//格式化为年月
    
                Calendar min = Calendar.getInstance();
                Calendar max = Calendar.getInstance();
    
                min.setTime(sdf.parse(minDate));
                min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1);
    
                max.setTime(sdf.parse(maxDate));
                max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2);
    
                Calendar curr = min;
                while (curr.before(max)) {
                    result.add(sdf.format(curr.getTime()));
                    curr.add(Calendar.MONTH, 1);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }
    

    相关文章

      网友评论

          本文标题:获取时间区间内所有的年月集合

          本文链接:https://www.haomeiwen.com/subject/mmzpyctx.html