我想问一下,在特定年份创建日期列表以保存今年日期的最合适方式是什么。
我写了以下内容并且工作正常。 但是,我不确定这是最方便的方式。
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);
}
答案 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)