Ответ 1
Вы можете использовать Calendar класс:
Calendar cal = Calendar.getInstance()
cal.add(Calendar.DATE, -7);
System.out.println("Date = "+ cal.getTime());
Но, как отметил @Sean Patrick Floyd, Joda-time - лучшая библиотека Java для Date.
Я использую
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);
Вы можете использовать Calendar класс:
Calendar cal = Calendar.getInstance()
cal.add(Calendar.DATE, -7);
System.out.println("Date = "+ cal.getTime());
Но, как отметил @Sean Patrick Floyd, Joda-time - лучшая библиотека Java для Date.
Или используйте JodaTime:
DateTime lastWeek = new DateTime().minusDays(7);
Вы можете использовать это, чтобы продолжить использовать тип Дата и более разборчивый код, если вы предпочитаете:
import org.apache.commons.lang.time.DateUtils;
...
Date yourDate = DateUtils.addDays(new Date(), *days here*);
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
*/
}
}
Используйте 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();
Надеюсь, это поможет. Получайте удовольствие!
Для всех функций, связанных с датой, вам следует рассмотреть возможность использования библиотеки Joda. Java date api очень плохо разработаны. Joda обеспечивает очень хороший API.