例如,输入参数为2011-01-01和2012-01-01, 我想像2011-01-01~2011-01-02,2011-01-02~2011-01-03那样一天一天地解析这个时期...... 最后,将它们存储在String?
的数组中提前致谢。
答案 0 :(得分:2)
你应该确实接受你的接受率。但基本方法是这样的:
伪代码:
Date first = "2011-01-01";
Date last = "2012-01-01";
Calendar cal = new Calendar(first);
List<Date> dates = ...;
while (first.before(last)) {
cal.addDays(1);
dates.add(cal);
}
这应该很容易使用GregorianCalendar
来实现,或者您可以查看joda-time,这将使这很容易......
答案 1 :(得分:2)
为了从字符串中解析日期,我建议使用SimpleDateFormat。
这样您将获得Date个对象。使用Date对象创建GregorianCalendar。
然后,您可以使用GregorianCalendar的add
方法一次增加一天,直到达到结束日期。
这是一个代码示例:
String dateString1 = "2011-01-01";
String dateString2 = "2012-01-01";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
List<String> dates = new ArrayList<String>();
Date startDate = dateFormat.parse(dateString1);
Date endDate = dateFormat.parse(dateString2);
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(startDate);
while (calendar.getTime().before(endDate)) {
dates.add(dateFormat.format(calendar.getTime()));
calendar.add(Calendar.DAY_OF_MONTH, 1);
}
这会将您的日期放在列表中。您可以将其转换为如下数组:
String[] datesArray = dates.toArray(new String[0]);