如何判断一个日期是否在同一天内

3

如果我在Java(Android)中有两个日期(Date1和Date2),我如何知道Date2是否与Date1在同一天?(注:不是指Date2-Date1<24小时)。以下是一些示例(假设为同一年月)

 Date1: day=14 hour=00:00           Date2: day=14 hour=00:00    --> Result TRUE
 Date1: day=13 hour=23:59           Date2: day=14 hour=00:00    --> Result FALSE
 Date1: day=14 hour=05:00           Date2: day=14 hour=00:00    --> Result TRUE
 Date1: day=14 hour=00:00           Date2: day=15 hour=00:00    --> Result FALSE

谢谢


你的第二个例子也不应该返回true吗? - Jared
我猜测 Date2: day=15... 是有意为之的。 - Sam
2个回答

11

为什么不使用DateUtils

你可以直接调用像isSameDay这样的方法。

if (DateUtils.isSameDay(date1, date2)) {
    System.out.println("Same Date");
} else if (date1.before(date2)) {
    System.out.println("date1 before date2");
} else {
    System.out.println("date1 after date2");
}

查看Apache DateUtils


请注意,此解决方案不考虑时区。 - martyglaubitz

4

我从Java: comparing two Dates to see if they are in the same day中复制了这段代码。

Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(date1);
cal2.setTime(date2);
boolean sameDay = cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) &&
                  cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接