我正在研究一种可以添加这样日期的方法:
Found 1 items
-rw-r--r-- 1 hduser supergroup 158 2015-06-12 14:13 /input/test.csv
返回包含d1和amp;之间所有日期的ArrayList。 D2。
所以,首先我需要知道这两个日期之间存在多少天(遵循此示例:https://stackoverflow.com/a/28865648/4944071)
我写了这样的话:
public static ArrayList<Calendar> addDaysBetween(Calendar day1, Calendar day2)
但是,我很确定这根本不起作用。想象一下这些参数:
2012/12/21至2013/02/14
不是同一年,不是同一个月,它无法正常工作。所以,我稍微摸了一下头,决定使用变量DAY_OF_YEAR。
但是,我仍然坚持,因为我不知道如何操纵这个变量来创建正确的日期,并且有很好的月份&amp;好年头..
答案 0 :(得分:2)
你可以试试这个
Calendar tmp = (Calendar) day1.clone();
ArrayList<Calendar> fullDates = new ArrayList<Calendar>();
while (tmp.before(day2)) {
fullDates.add((Calendar) tmp.clone());
tmp.add(Calendar.DAY_OF_MONTH, 1);
}
return fullDates;
答案 1 :(得分:1)
使用java8 date api:
List<LocalDate> listOfDates = new ArrayList<>();
LocalDate endDay = LocalDate.of(2014, Month.JUNE, 20);
LocalDate startDay = LocalDate.of(2014, Month.JUNE, 11);
long days = ChronoUnit.DAYS.between(startDay, endDay);
for (int i = 1; i <= days; i++) {
listOfDates.add(startDay.plusDays(i));
}
如果要转换为java.util.Date或Calendar:
Date d = Date.from(startDay.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
Calendar cal = Calendar.getInstance();
cal.setTime(d);
答案 2 :(得分:0)
尝试类似:
currentDay = day1;
while (currentDay < day2){
addcurrentday to collection
currentday++
}