Java 如何在android中获得接下来的七天?

Java 如何在android中获得接下来的七天?,java,android,date,calendar,simpledateformat,Java,Android,Date,Calendar,Simpledateformat,在我的应用程序中,我需要从当前日期算起的接下来七天。 我尝试了下面的解决方案,但它跳过了几天 Calendar calendar = new GregorianCalendar(); SimpleDateFormat sdf = new SimpleDateFormat("EEEE dd-MMM-yyyy"); for (int i = 0; i < 7; i++) { calendar.add(Calendar.DATE, i); String day = sdf.for

在我的应用程序中,我需要从当前日期算起的接下来七天。 我尝试了下面的解决方案,但它跳过了几天

Calendar calendar = new GregorianCalendar();
SimpleDateFormat sdf = new SimpleDateFormat("EEEE dd-MMM-yyyy");
for (int i = 0; i < 7; i++) {
    calendar.add(Calendar.DATE, i);
    String day = sdf.format(calendar.getTime());
    Log.i(TAG, day);
}
我还尝试了
Calendar.DAY\u OF u WEEK
Calendar.DAY\u OF u MONTH
Calendar.DAY\u OF u YEAR
,而不是
Calendar.DATE
,但得到了相同的输出。

尝试以下方法:

SimpleDateFormat sdf = new SimpleDateFormat("EEEE dd-MMM-yyyy");
for (int i = 0; i < 7; i++) {
    Calendar calendar = new GregorianCalendar();
    calendar.add(Calendar.DATE, i);
    String day = sdf.format(calendar.getTime());
    Log.i(TAG, day);
}
SimpleDataFormat sdf=新的SimpleDataFormat(“EEEE dd MMM yyyy”);
对于(int i=0;i<7;i++){
日历=新的公历日历();
calendar.add(calendar.DATE,i);
字符串day=sdf.format(calendar.getTime());
Log.i(标签,日期);
}

您有一个日历实例,正在向其中添加1、2、3、4、5、6和7天而不重置它。上述解决方案将对象创建移动到循环中。

找到了使用java 8的最简单方法+

星期四

  final LocalDate date = LocalDate.now();
  final LocalDate plusDays = date.plusDays(7); 
  //if you want to show past 7 days, change to data.minusDays(7);
  final String formattedDate = plusDays.format(DateTimeFormatter.ofPattern("MM/dd/yyyy")); // show is this format 09/30/2020
  System.out.println(formattedDate);  //09/30/2020
不足几天

  final LocalDate date = LocalDate.now();
  final LocalDate minusDays = date.minusDays(7); 
  final String formattedDate = minusDays.format(DateTimeFormatter.ofPattern("MM/dd/yyyy")); 
  System.out.println(formattedDate); 
dateTimeFormat内部有很多功能,请参阅

  final LocalDate date = LocalDate.now();
  final LocalDate minusDays = date.minusDays(7); 
  final String formattedDate = minusDays.format(DateTimeFormatter.ofPattern("MM/dd/yyyy")); 
  System.out.println(formattedDate);