Сравнение, если два экземпляра Date относятся к одному и тому же дню - PullRequest
4 голосов
/ 10 сентября 2009

У меня есть два экземпляра Java java.util.Date, и я должен выяснить, относятся ли они к одному и тому же дню.

Я могу сделать это нелегко, разобрав даты и сравнив их, убедившись, что годы совпадают.

Поскольку это такая распространенная проблема, я ожидаю, что будет более легкое решение этой проблемы.

Спасибо!

Ответы [ 3 ]

6 голосов
/ 10 сентября 2009

Экземпляры java.util.Date относятся к моментам во времени. На какой день они попадают, зависит от того, какой часовой пояс вы используете. Вы можете использовать java.util.Calendar, чтобы представить момент в определенном часовом поясе ...

... или вместо этого вы можете использовать Joda Time , что намного, намного лучше API. В любом случае, вам нужно знать, какой часовой пояс вас интересует.

В Joda Time, когда у вас есть соответствующий часовой пояс, вы можете преобразовать оба момента в LocalDate объекты и сравнить их. (Это также означает, что вы можете сравнить, находится ли момент X в часовом поясе A в тот же день, что и момент Y в часовом поясе B, если вы хотите ...)

2 голосов
/ 10 сентября 2009

Я использую класс DateUtils Apache Commons Lang 2 , он предоставляет метод isSameDay (Date, Date).

Обновление:

Здесь ссылка на Apache Commons Lang 3 .

0 голосов
/ 14 августа 2013

С в остальном StackOverflow

SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd");
return fmt.format(date1).equals(fmt.format(date2));
...