我需要比较两个Dates(例如date1和date2),并得出在同一天boolean sameDay两个Dates相同的a,如果不是,则返回false。我怎样才能做到这一点?这里似乎有混乱的旋风……而且我想尽可能避免引入除JDK之外的其他依赖项。需要说明的是:如果date1并且date2共享相同的年,月和日,sameDay则为true,否则为false。我意识到这需要了解时区...传入时区会很好,但是只要知道行为是什么,我就可以使用GMT或本地时间。再次澄清:date1 = 2008 Jun 03 12:56:03date2 = 2008 Jun 03 12:59:44 => sameDate = truedate1 = 2009 Jun 03 12:56:03date2 = 2008 Jun 03 12:59:44 => sameDate = falsedate1 = 2008 Aug 03 12:00:00date2 = 2008 Jun 03 12:00:00 => sameDate = false
3 回答
千巷猫影
TA贡献1829条经验 获得超7个赞
您可以通过计算每个日期的儒略日编号,然后进行比较来避免使用日历的外部依赖性和性能损失。
public static boolean isSameDay(Date date1, Date date2) {
// Strip out the time part of each date.
long julianDayNumber1 = date1.getTime() / MILLIS_PER_DAY;
long julianDayNumber2 = date2.getTime() / MILLIS_PER_DAY;
// If they now are equal then it is the same day.
return julianDayNumber1 == julianDayNumber2;
}
添加回答
举报
0/150
提交
取消