我在Java中有两个日期:
Wed Jan 05 00:00:00 CET 2011
Sat Jan 15 23:59:59 CET 2011
现在我想迭代它们,这样我每天都可以做一个System.out.println()
,我把这个日期放在控制台上:
2011-01-05
2011-01-06
2011-01-07
...
2011-01-13
2011-01-14
2011-01-15
我该怎么做?
最诚挚的问候,蒂姆。
更新
Calendar calend = Calendar.getInstance();
calend.setTime(myObject.getBeginDate());
Calendar beginCalendar = new GregorianCalendar(calend.get(Calendar.YEAR), calend.get(Calendar.MONTH), calend.get(Calendar.DATE));
calend.setTime(myObject.getEndDate());
Calendar endCalendar = new GregorianCalendar(calend.get(Calendar.YEAR), calend.get(Calendar.MONTH), calend.get(Calendar.DATE));
while (beginCalendar.compareTo(endCalendar) <= 0) {
// ... calculations
beginCalendar.add(Calendar.DATE, 1);
}
答案 0 :(得分:3)
使用GregorianCalendar对象一次增加一天
使用SimpleDateFormat输出。
要将日期从字符串中提取到Date对象,您必须执行以下操作
SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
Date date = format.parse(yourDateString);
然后,您需要转换为GregorianCalendar,以便您可以轻松地增加值,最后使用另一个SimplerDateFormat以您希望的方式输出日期。请参阅文档以获取不同的代码。
<强>更新强> 更新后,您的代码更新,您只需执行以下操作
Calendar beginCalendar = Calendar.getInstance();
beginCalendar.setTime(myObject.getBeginDate());
Calendar endCalendar = Calendar.getInstance();
beginCalendar.setTime(myObject.getEndDate());
while (beginCalendar.compareTo(endCalendar) <= 0) {
// ... calculations
beginCalendar.add(Calendar.DATE, 1);
}
答案 1 :(得分:1)
创建一个Calendar
对象并在开始日期设置它。继续一次添加一天并打印,直到结束日期为止。