Подтвердить что ты не робот

Как получить дату на 7 дней раньше даты с текущей даты в java

Я использую

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);
4b9b3361

Ответ 1

Вы можете использовать Calendar класс:

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

Но, как отметил @Sean Patrick Floyd, Joda-time - лучшая библиотека Java для Date.

Ответ 2

Или используйте JodaTime:

DateTime lastWeek = new DateTime().minusDays(7);

Ответ 3

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

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

Ответ 4

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
         */
    }
}

Ответ 5

Используйте 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();

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

Ответ 6

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