Дата объект в Java - это не что иное, как число, представляющее миллисекунды с 1 января 1970 года, 00:00:00 по Гринвичу.У него нет атрибута, который называется день, дата, месяц, год и т. Д. Это потому, что дата, месяц, год варьируются в зависимости от типа календаря и часового пояса.Эти атрибуты принадлежат Calendar instance.
Итак, если у вас есть 2 Date объектов и вы хотите сравнить день месяца, месяц и год, то вы должны создать соответствующий Calendar instance и сравните их отдельно.
// Parse begin date
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Date beginDate = dateFormat.parse(beginDateAsString);
// Create calendar instances
Calendar beginDateCalendar = Calendar.getInstance();
beginDateCalendar.setTime(beginDate);
Calendar todayCalendar = Calendar.getInstance();
// Check Equals
boolean dayEquals = todayCalendar.get(Calendar.DAY_OF_MONTH) == beginDateCalendar
.get(Calendar.DAY_OF_MONTH);
boolean monthEquals = todayCalendar.get(Calendar.MONTH) == beginDateCalendar
.get(Calendar.MONTH);
boolean yearEquals = todayCalendar.get(Calendar.YEAR) == beginDateCalendar
.get(Calendar.YEAR);
// Print Equals
System.out.println(dayEquals && monthEquals && yearEquals);
Вышеприведенный код неудобен для текущей проблемы, но объясняет, как операции с датами должны выполняться в JAVA.
Если вы просто хотите решить проблему равенства, о которой вы упомянули, то кода, приведенного ниже, будет достаточно:
String todayAsString = (new SimpleDateFormat("dd/MM/yyyy")).format(new Date());
System.out.println(beginDateAsString.equals(todayAsString));