2012-04-27 32 views
3

如果我在Java(Android)(日期1和日期2)中有两个日期,我如何知道日期2是否在Date1的同一天? (注意:如果Date2-Date1 < 24小时不行)。一些例子(suppousing同月,年)如何知道日期是否在其他日期的同一天

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 

感谢

+0

你的第二个例子不应该返回true吗? – Jared 2012-04-27 18:52:47

+0

我猜'Date2:day = 15 ...'是有意的。 – Sam 2012-04-27 18:53:38

+0

是的,这是一个错误,谢谢 – Addev 2012-04-27 22:31:15

回答

10

你为什么不使用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

+0

不是说这个解决方案不考虑时区 – martyglaubitz 2015-05-20 16:01:40

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); 
相关问题