[英]How can I parse a period of date into a String[ ] day by day in Java?
例如,輸入參數為2011-01-01和2012-01-01,我想逐日解析此時間段,例如2011-01-01〜2011-01-02、2011-01-02〜2011- 01-03 ...最后,將它們存儲在String數組中嗎?
提前致謝。
您應該真正按照您的接受率進行工作。 但基本方法如下:
偽代碼:
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 ,這將使這一切變得很容易...
為了從字符串中解析日期,我建議使用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]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.