[英]How can I parse a period of date into a String[ ] day by day in Java?
For example,the input parameters are 2011-01-01 and 2012-01-01, and I want to parse this period day by day like 2011-01-01~2011-01-02, 2011-01-02~2011-01-03... Finally,store them in a array of String? 例如,输入参数为2011-01-01和2012-01-01,我想逐日解析此时间段,例如2011-01-01〜2011-01-02、2011-01-02〜2011- 01-03 ...最后,将它们存储在String数组中吗?
Thanks in advance. 提前致谢。
You should really work on your accept rate. 您应该真正按照您的接受率进行工作。 but the basic method would go like this :
但基本方法如下:
psuedo-code: 伪代码:
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);
}
This should be really easy to implement using GregorianCalendar
, or you can check out joda-time which would make this a whole lot of easy... 这应该使用
GregorianCalendar
真的很容易实现,或者您可以签出joda-time ,这将使这一切变得很容易...
For parsing the date from a string, I recommend using SimpleDateFormat . 为了从字符串中解析日期,我建议使用SimpleDateFormat 。
That way you will obtain a Date object. 这样,您将获得一个Date对象。 Use the Date object to create a GregorianCalendar .
使用Date对象创建GregorianCalendar 。
Then, you can use GregorianCalendar's add
method to increase it one day at a time until you reach your end date. 然后,您可以使用GregorianCalendar的
add
方法将其一次增加一天,直到达到结束日期为止。
Here's a code example: 这是一个代码示例:
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);
}
This puts your dates in a list. 这会将您的日期放入列表中。 You can convert it to an array like this:
您可以将其转换为如下数组:
String[] datesArray = dates.toArray(new String[0]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.