如何从特定日期获取最近七天

时间:2017-04-06 06:46:16

标签: android simpledateformat

如果日期为2017-03-30,我想将日期从2017-03-23提取到2017-03-30

我尝试使用此代码,让我的String更改为Date格式

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Date dateParse = sdf.parse("2017-03-30");

然后我被卡住了,因为我接受参考就像这样获得当前时间

Calendar c = Calendar.getInstance();
c.add(Calendar.DATE, -7);
//may be my dateParse should put here , but i don't know how to do
Date monday = c.getTime();//it get the current time
String preMonday = sdf.format(monday);

有人可以教我如何取这七天吗?提前谢谢。

2 个答案:

答案 0 :(得分:2)

您可以使用以下代码

  SimpleDateFormatdateFormat = new SimpleDateFormat("dd MMM yyyy");
        Calendar c = Calendar.getInstance();
       String date = dateFormat.format(c.getTime());

  c.add(Calendar.DATE, 7);
        String date1 = dateFormat.format(c.getTime());

答案 1 :(得分:1)

解析日期:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date myDate = sdf.parse("2017-03-30");

第一个解决方案1)然后要么计算出你需要减去多少毫秒:

Date newDate = new Date(myDate.getTime() - 604800000L); // 7 * 24 * 60 * 60 * 1000

第二个解决方案2)或者使用java.util.Calendar类提供的API:

Calendar calendar = Calendar.getInstance();
calendar.setTime(myDate);
calendar.add(Calendar.DAY_OF_YEAR, -7);
Date newDate = calendar.getTime();

然后,如果需要,将其转换回String:

String date = dateFormat.format(newDate);

此答案来自here

编辑:  如果您需要输出为2017-03-29 2017-03-28 2017-03-27 ...... 2017-03-23然后尝试以下代码

for(int i = 1; i <= 7; i++){
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(myDate);
    calendar.add(Calendar.DAY_OF_YEAR, -i);
    Date newDate = calendar.getTime();
    String date = dateFormat.format(newDate);
    //here in date you can get all date from and output as 2017-03-29 2017-03-28 2017-03-27 ...... 2017-03-23
}

希望你需要这个