簡體   English   中英

如何在Java中將日期的一段時間解析為String []?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM