比较两个Date实例是否指向同一天

时间:2009-09-10 16:50:45

标签: java datetime

我有两个java.util.Date的Java实例,我必须查明它们是否在同一天引用。

我可以通过艰难的方式做到这一点,将日期分开并比较日期,确保年份匹配。

由于这是一个常见的问题,我希望能够更容易地解决这个问题。

谢谢!

3 个答案:

答案 0 :(得分:6)

java.util.Date的实例及时引用瞬间。它们落在哪一天取决于您使用的时区。您可以使用java.util.Calendar来表示特定时区的即时消息......

...或者您可以使用Joda Time代替,这是一个更好,更好的API。无论哪种方式,你都必须知道你感兴趣的时区。

在Joda Time中,一旦你有了相关的时区,你就可以将两个时刻转换为LocalDate个对象并进行比较。 (这也意味着你可以比较时区A中的瞬间X是否与时区B中的瞬间Y同一天,如果你想...)

答案 1 :(得分:2)

我使用Apache Commons Lang 2的DateUtils类,它提供了isSameDay(Date,Date)方法。

更新

此处指向Apache Commons Lang 3

的链接

答案 2 :(得分:0)

来自elsewhen on StackOverflow

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