Как заменить setDate и getDate - PullRequest
       22

Как заменить setDate и getDate

1 голос
/ 24 октября 2019

Устаревший код, как заменить setDate и getDate, сейчас код работает, но я не могу представить его таким образом. Я пробовал Календарь, и я не вижу, как это работает. Кодовая точка - перенести точное количество дней назад в моем календаре.

public void minusDay() {
    int days = dateRange();
    toDate.setDate(toDate.getDate()-days);   

1 Ответ

0 голосов
/ 24 октября 2019

Java 8 Date API поддерживает minusDays и plusDays методы для LocalDateTime экземпляров.

Если вы не хотите конвертировать всю систему с использованием Java 8 Date API, вы можете простопреобразовать ваш Date объект в LocalDateTime и работать над ним. Вам также нужно будет использовать ZonedDateTime, чтобы учесть часовой пояс и для преобразования.

public void minusDay() {
    int days = dateRange();
    LocalDateTime ldt = LocalDateTime.ofInstant(toDate.toInstant(), ZoneId.systemDefault());
    ldt.minusDays(days);
    ZonedDateTime zdt = ldt.atZone(ZoneId.systemDefault());
    toDate = Date.from(zdt.toInstant());
}

Источник здесь .

...