Java 获取从当前日期开始的未来7天

Java 获取从当前日期开始的未来7天,java,android,android-calendar,Java,Android,Android Calendar,我一周有7天从周一开始。但是在我的项目中,我想从今天开始得到接下来的7天。 示例:如果今天是2013年9月12日星期一。列表如下: Monday, 09/12/2013 Tuesday, 10/12/2013 Wednesday, 11/12/2013 Thursday, 12/12/2013 Friday, 13/12/2013 Saturday, 14/12/2013 Sunday, 15/12/2013 Tuesday, 10/12/2013 Wednesday, 11/12/2013

我一周有7天从周一开始。但是在我的项目中,我想从今天开始得到接下来的7天。 示例:如果今天是2013年9月12日星期一。列表如下:

Monday, 09/12/2013
Tuesday, 10/12/2013
Wednesday, 11/12/2013
Thursday, 12/12/2013
Friday, 13/12/2013
Saturday, 14/12/2013
Sunday, 15/12/2013
Tuesday, 10/12/2013
Wednesday, 11/12/2013
Thursday, 12/12/2013
Friday, 13/12/2013
Saturday, 14/12/2013
Sunday, 15/12/2013
Monday, 16/12/2013
下一步:如果今天是2013年12月10日星期二。列表如下:

Monday, 09/12/2013
Tuesday, 10/12/2013
Wednesday, 11/12/2013
Thursday, 12/12/2013
Friday, 13/12/2013
Saturday, 14/12/2013
Sunday, 15/12/2013
Tuesday, 10/12/2013
Wednesday, 11/12/2013
Thursday, 12/12/2013
Friday, 13/12/2013
Saturday, 14/12/2013
Sunday, 15/12/2013
Monday, 16/12/2013
我的代码从周一开始每周7天

SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
Calendar date = Calendar.getInstance();
date.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
/*
* Get Date in 7 days
*/
for(int i = 0; i < 7;i++){
    Calendar[i] = format.format(date.getTime());
    date.add(Calendar.DATE  , 1);
    System.out.println("date :" + Calendar[i]);
}
SimpleDataFormat格式=新的SimpleDataFormat(“dd/MM/yyyy”);
日历日期=Calendar.getInstance();
date.set(Calendar.DAY\u OF_WEEK,Calendar.MONDAY);
/*
*在7天内得到日期
*/
对于(int i=0;i<7;i++){
日历[i]=format.format(date.getTime());
date.add(Calendar.date,1);
System.out.println(“日期:+日历[i]);
}
从这根线上取下的


您只需保留代码的原样,然后删除设置调用即可。为日历调用getInstance时,您将返回一个设置为当前日期和时间的日历实例

例:

SimpleDataFormat格式=新的SimpleDataFormat(“dd/MM/yyyy”);
日历日期=Calendar.getInstance();
对于(int i=0;i<7;i++){
日历[i]=format.format(date.getTime());
date.add(Calendar.date,1);
System.out.println(“日期:+日历[i]);
}

其他答案是正确的

乔达时间 为了好玩,我使用2.3库编写了同样的代码

一天中的第一刻 注意对的调用。在处理日期时间值但关注日期部分时,最好将时间设置为一天中的第一个时刻。警告:切勿将时间设置为全零–该时间可能不存在,因为(DST)可能会将时钟推过午夜

获得一天中第一个时刻的一个原因就是为了避免可能出现的异常情况或问题,而把时间推迟到另一天。另一个原因是使代码自文档化,显示我们关注日期而不是时间的意图

仅日期 如果你真的只想约会,那就改用Joda Time的类吧。但要三思。通常,当人们天真地认为他们只想要约会时,他们实际上需要约会时间

示例代码
/©2013巴西尔布尔克。此源代码可以由任何对此承担全部责任的人自由使用。
//导入org.joda.time.*;
//导入org.joda.time.format.*;
DateTime today=new DateTime()。withTimeAtStartOfDay();
//ISO 8601格式
对于(inti=0;i
SimpleDateFormat格式=新的SimpleDateFormat(“dd/MM/yyyy”,Locale.ENGLISH);
日历=Calendar.getInstance();
calendar.set(calendar.DAY\u OF_WEEK,calendar.MONDAY);
字符串[]天=新字符串[7];
对于(int i=0;i<7;i++){
天[i]=format.format(calendar.getTime());
calendar.add(calendar.DATE,1);
日志d(“天”+i,“日期”+d[i]);
}

代码不是100%正确。
Calendar[i]
应该是一个字符串数组。创建这样的字符串
string[]calendarDays=new string[7];
之后,使用
calendarDays[i]=format.format(Calendar.getTime())
2018年的解决方案是可以使用的。只使用代码的答案很少有用。我想在2018年,使用过时且设计拙劣的
Calendar
类和臭名昭著的
SimpleDataFormat
的答案至少应该包含一个关于这一点的注释。而且你似乎没有回答这个问题(我引用并强调)“我想从今天开始获得接下来的7天。”
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
String[] days = new String[7];
for(int i = 0; i < 7;i++){
    days[i] = format.format(calendar.getTime());
    calendar.add(Calendar.DATE  , 1);
    Log.d("Days" + i, "date :" + days[i]);
}