Java: как создать объект даты на вчерашний день разными способами

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

Метод 1: использование java.util.Calendarи java.util.Date

import java.util.Calendar;
import java.util.Date;
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_YEAR, -1);
Date yesterday = calendar.getTime();

Метод 2: использование java.time.LocalDateи java.time.ZoneId

import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;
LocalDate yesterday = LocalDate.now().minusDays(1);
Date date = Date.from(yesterday.atStartOfDay(ZoneId.systemDefault()).toInstant());

Метод 3: использование java.time.LocalDateи java.time.LocalDateTime

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
LocalDate yesterday = LocalDate.now().minusDays(1);
LocalDateTime yesterdayStart = yesterday.atStartOfDay();
Date date = Date.from(yesterdayStart.toInstant(java.time.ZoneOffset.UTC));

Метод 4: использование java.util.Calendarи java.time.LocalDateTime

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Calendar;
import java.util.Date;
LocalDate yesterday = LocalDate.now().minusDays(1);
LocalDateTime yesterdayStart = yesterday.atStartOfDay();
Calendar calendar = Calendar.getInstance();
calendar.set(yesterdayStart.getYear(), yesterdayStart.getMonthValue() - 1, yesterdayStart.getDayOfMonth());
Date date = calendar.getTime();

Эти методы позволяют создать объект Date, представляющий вчерашнюю дату в Java. Вы можете выбрать тот, который лучше всего соответствует вашим требованиям.