Как получить дату на 7 дней раньше даты от текущей даты в Java [дубликата]

На этот вопрос уже есть ответ здесь:

Как вычесть X дней из даты, используя календарь Java? 9 ответовКак я могу увеличить дату на один день в Java? 26 ответов

я использую

DateFormat dateFormat = 
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
Date date = new Date();
String fromdate = dateFormat.format(date);

чтобы получить текущую дату, как я могу получить дату 7 дней назад. например, если сегодня 7 июня 2013 г., как я могу получить 31 мая 2013 г. в том же формате, который определен в формате даты?

Есть решение .. Спасибо всем :)

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");

        Date date = new Date();
        String todate = dateFormat.format(date);

        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DATE, -7);
        Date todate1 = cal.getTime();    
        String fromdate = dateFormat.format(todate1);
 Prateek07 июн. 2013 г., 12:36
просто думайте об этом, как о том, как катить календарь, который вы обычно делаете на своих наручных часах.tutorialspoint.com/java/util/calendar_roll.htm

Ответы на вопрос(6)

Ты можешь использоватьКалендарь учебный класс :

Calendar cal = Calendar.getInstance()
cal.add(Calendar.DATE, -7);
System.out.println("Date = "+ cal.getTime());

Но, как сказал @Sean Патрик Флойд,Joda времени лучшая библиотека Java для даты.

 Drubio28 февр. 2018 г., 10:08
Можно'не редактировать это потому что этоs только один символ, но в конце первой строки пропущена точка с запятой или он выигралт компилировать.

Для всех функций, связанных с датами, вы должны рассмотреть возможность использования библиотеки Joda. Джава's date api 'Они очень плохо спроектированы. Joda предоставляет очень хороший API.

Java теперь имеет довольно хорошую встроенную библиотеку дат,java.time в комплекте сJava 8.

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Foo {
    public static void main(String[] args) {

        DateTimeFormatter format =
            DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'");

        LocalDateTime now = LocalDateTime.now();
        LocalDateTime then = now.minusDays(7);

        System.out.println(String.format(
            "Now:  %s\nThen: %s",
            now.format(format),
            then.format(format)
        ));
        /*
            Example output:
                Now:  2014-05-09T14:51:48Z
                Then: 2014-05-02T14:51:48Z
         */
    }
}

Вы можете использовать это, чтобы продолжить использовать типДата и более разборчивый код, если вы предпочитаете:

import org.apache.commons.lang.time.DateUtils;
...
Date yourDate = DateUtils.addDays(new Date(), *days here*);

Или использоватьJodaTime:

DateTime lastWeek = new DateTime().minusDays(7);
 slott15 сент. 2016 г., 10:40
новая дата (System.currentTimeMillis () - TimeUnit.MILLISECONDS.convert (7, TimeUnit.DAYS));

Используйте Calendar-API:

// get Calendar instance
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());

// substract 7 days
// If we give 7 there it will give 8 days back
cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH)-6);

// convert to date
Date myDate = cal.getTime();

Надеюсь это поможет. Повеселись!

Ваш ответ на вопрос