0

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

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

        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);
        }
4

2 回答 2

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);
}
于 2012-07-30T00:31:59.850 回答
0

类似于如何在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)
于 2014-06-11T18:23:09.993 回答