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

Как уменьшить один месяц с текущей даты и сохранить в переменной даты с помощью java?

Как уменьшить один месяц с текущей даты и хотите пережить в переменной java.util.Date im, используя этот код, но он показывает ошибку во 2-й строке

 java.util.Date da = new Date();
 da.add(Calendar.MONTH, -1); //error

Как сохранить эту дату в переменной java.util.Date?

4b9b3361

Ответ 1

Использовать Календарь:

Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, -1);
Date result = cal.getTime();

Ответ 2

Calendar calNow = Calendar.getInstance()

// adding -1 month
calNow.add(Calendar.MONTH, -1);

// fetching updated time
Date dateBeforeAMonth = calNow.getTime();

Ответ 3

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

Date date = new DateTime().minusMonths(1).toDate();

JodaTime предоставляет удобный API для управления датами.

Обратите внимание, что аналогичный API дат будет представлен в JDK8 с JSR310.

Ответ 4

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

    java.util.Date da = new Date();
    Calendar cal = Calendar.getInstance();
    cal.setTime(da);
    cal.add(Calendar.MONTH, -1);
    da = cal.getTime();

Ответ 5

Начиная с Java 8, предлагаемый способ заключается в использовании API-интерфейса по дате вместо Calendar.

Если вы хотите вернуть объект Date:

Date date = Date.from(ZonedDateTime.now().minusMonths(1).toInstant());

Если вам не нужен именно объект Date, вы можете напрямую использовать классы, предоставляемые пакетом, даже для получения дат в других часовых поясах:

ZonedDateTime dateInUTC = ZonedDateTime.now(ZoneId.of("Pacific/Auckland")).minusMonths(1);