方便的方式生成年份的日期

时间:2012-07-30 00:20:47

标签: java

我想问一下,在特定年份创建日期列表以保存今年日期的最合适方式是什么。

我写了以下内容并且工作正常。 但是,我不确定这是最方便的方式。

        Calendar cal = new GregorianCalendar(2012, Calendar.JANUARY, 1);
        Date startDate = cal.getTime();

        cal = new GregorianCalendar(2013, Calendar.JANUARY, 1);
        Date endDate = cal.getTime();


        List<Date> dates = new ArrayList<Date>();
        Calendar calendar = new GregorianCalendar();
        calendar.setTime(startDate);

        while (calendar.getTime().before(endDate)) {
            Date date= calendar.getTime();
            dates.add(date);
            calendar.add(Calendar.DATE, 1);
        }

2 个答案:

答案 0 :(得分:5)

你可以简化:

int startYear = 2012;
int endYear = 2013;

Calendar cal = new GregorianCalendar(startYear, Calendar.JANUARY, 1);
ArrayList<Date> dates = new ArrayList<Date>();
while(cal.get(Calendar.YEAR) < endYear){
    dates.add(cal.getTime());
    cal.add(Calendar.DATE, 1);
}

答案 1 :(得分:0)

类似于how to get a list of dates between two dates in java

使用Lamma可以轻松构建日期范围:

    for (Date d: Dates.from(2014, 6, 29).to(2014, 7, 1).build()) {
        System.out.println(d);
    }

输出是:

Date(2014,6,29)
Date(2014,6,30)
Date(2014,7,1)
相关问题