Java如何获取两个日期之间的月份和年份列表

1、获取年份列表示例如下

复制代码
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
​
public class Main {
    public static void main(String[] args) {
        String date1 = "2017-01-01";
        String date2 = "2021-12-01";
​
        DateFormat formater = new SimpleDateFormat("yyyy");
​
        Calendar beginCalendar = Calendar.getInstance();
        Calendar finishCalendar = Calendar.getInstance();
​
        try {
            beginCalendar.setTime(formater.parse(date1));
            finishCalendar.setTime(formater.parse(date2));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        while (beginCalendar.before(finishCalendar) || beginCalendar.equals(finishCalendar)) {
            String date = formater.format(beginCalendar.getTime()).toUpperCase();
            System.out.println(date);
            beginCalendar.add(Calendar.YEAR, 1);
        }
    }
}
View Code
复制代码

2、获取月份列表示例如下

复制代码
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
​
public class MainYearMonth {
  public static void main(String[] args) {
        String date1 = "2017-01-01";
        String date2 = "2021-12-01";
​
        //注意:这里的MM一定是大写,小写计算出的月份列表是错误的
        DateFormat formater = new SimpleDateFormat("yyyy-MM");
​
        Calendar beginCalendar = Calendar.getInstance();
        Calendar finishCalendar = Calendar.getInstance();
​
        try {
            beginCalendar.setTime(formater.parse(date1));
            finishCalendar.setTime(formater.parse(date2));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        while (beginCalendar.before(finishCalendar) || beginCalendar.equals(finishCalendar)) {
            String date = formater.format(beginCalendar.getTime()).toUpperCase();
            System.out.println(date);
            beginCalendar.add(Calendar.MONTH, 1);
        }
    }
}
View Code
复制代码

 

posted @   DAYTOY-105  阅读(972)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示