Дата объект в Java нет ничего, но число, которое представляет миллисекунды с 1 января 1970 года, 00: 00:00 GMT. У него нет атрибутов, называемых день, дата, месяц, год и т. Д. Это потому, что дата, месяц, год варьируются в зависимости от типа календаря и часового пояса. Эти атрибуты относятся к экземпляру Calendar.
Итак, если у вас есть 2 Число: объекты и вы хотите сравнить день, месяц и год, то вы должны создать соответствующие календар экземпляра и сравнить их по отдельности.
// 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));
Как устанавливается 'beginDate'? –
1) Откуда начинается «начало»? 2) Первый «equals» вернет false, потому что даты не совпадают. Вы также должны 'SimpleDateFormat'' date'. – ProfessionalAmateur
Каков результат BeginDate, который вы задали раньше? – Aram