简体   繁体   English

如何在Java中将日期的一段时间解析为String []?

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM