Дата (date)
Коротко: Представление значений даты/времени в Java — сегодня делается через современный пакет java.time (LocalDate, LocalDateTime); старый класс java.util.Date считается устаревшим с Java 8.
Подробнее: У java.util.Date были фундаментальные проблемы проектирования (в том числе изменяемость и запутанная нумерация месяцев с 0) — java.time.LocalDate/LocalDateTime неизменяемы и заметно менее подвержены ошибкам.
Подробности
LocalDate today = LocalDate.now();
LocalDate birthday = LocСм. также: ошибки, непримитивные типы