Как вычесть X дней из даты с помощью календаря Java?

Вы можете использовать метод java-se add и передать ему отрицательное jdk число. Однако вы также можете java-api написать более простой метод, который jre не использует класс Calendar, например calender следующий

public static void addDays(Date d, int days)
{
    d.setTime( d.getTime() + (long)days*1000*60*60*24 );
}

Получает значение java-libraries отметки времени даты (миллисекунды javax с начала эпохи) и добавляет core-java правильное количество миллисекунд. Вы jdk можете передать отрицательное oraclejdk целое число для параметра oraclejdk days для вычитания. Это будет core-java проще, чем "правильное" календарное jdk решение:

public static void addDays(Date d, int days)
{
    Calendar c = Calendar.getInstance();
    c.setTime(d);
    c.add(Calendar.DATE, days);
    d.setTime( c.getTime().getTime() );
}

Обратите внимание, что javax оба этих решения изменяют oraclejdk объект Date, переданный в качестве java-se параметра, а не возвращают java-libraries совершенно новый Date. При желании oraclejdk любую функцию можно легко j2se изменить, чтобы сделать это openjdk другим способом.

java

calendar

subtraction

2022-11-03T11:46:28+00:00