SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
Date begin = sdf.parse("2016-12-11");
Date end = sdf.parse("2016-12-20");
List<String> l = new ArrayList<String>();
Calendar cal = Calendar.getInstance();
while (begin.before(end)) {
l.add(sdf.format(begin));
cal.setTime(begin);
cal.add(Calendar.DAY_OF_MONTH, 1);
begin = cal.getTime();
}
for(String s:l){
System.out.println(s);
}
} catch (ParseException e) {
e.printStackTrace();
}
哈哈,又是日期类问题,那我肯定建议你用Java8的新时间API了,而且你时间字符串还是这种格式
yyyy-MM-dd
,直接LocalDate.parse
方法就可以把字符串转化为LocalDate对象了再者你这涉及到一系列有规律的时间集合,那肯定要考虑Stream啦,用Stream构造你这个集合是非常方便的快捷的,以下是示例代码:
然后是测试代码:
下面是打印结果:
贼好用~~完美的优雅又易懂的Java8~哈哈
你算出2个日期的相差天数,在循环加1,如果加的日期等于后面那个日期就行了
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
你需要Apache的lang 包,有如下api
static Date addDays(Date date, int amount) 返回一个date 时间对象 添加 amount 天 后的新的Date 对象
static Date addHours(Date date, int amount) 返回一个date 时间对象 添加 amount h 后的新的Date 对象
static Date addMilliseconds(Date date, int amount) 返回一个date 时间对象 添加 amount 毫秒 后的新的Date 对象
static Date addMinutes(Date date, int amount) 返回一个date 时间对象 添加 amount 分钟 后的新的Date 对象
static Date addMonths(Date date, int amount) 返回一个date 时间对象 添加 amount 月 后的新的Date 对象
static Date addSeconds(Date date, int amount) 返回一个date 时间对象 添加 amount 秒 后的新的Date 对象
static Date addWeeks(Date date, int amount) 返回一个date 时间对象 添加 amount 周 后的新的Date 对象
static Date addYears(Date date, int amount) 返回一个date 时间对象 添加 amount 年 后的新的Date 对象
文章地址