猿问

比较两个java.util.Date以查看它们是否在同一天

我需要比较两个Dates(例如date1和date2),并得出在同一天boolean sameDay两个Dates相同的a,如果不是,则返回false。


我怎样才能做到这一点?这里似乎有混乱的旋风……而且我想尽可能避免引入除JDK之外的其他依赖项。


需要说明的是:如果date1并且date2共享相同的年,月和日,sameDay则为true,否则为false。我意识到这需要了解时区...传入时区会很好,但是只要知道行为是什么,我就可以使用GMT或本地时间。


再次澄清:


date1 = 2008 Jun 03 12:56:03

date2 = 2008 Jun 03 12:59:44

  => sameDate = true


date1 = 2009 Jun 03 12:56:03

date2 = 2008 Jun 03 12:59:44

  => sameDate = false


date1 = 2008 Aug 03 12:00:00

date2 = 2008 Jun 03 12:00:00

  => sameDate = false


素胚勾勒不出你
浏览 909回答 3
3回答

千巷猫影

您可以通过计算每个日期的儒略日编号,然后进行比较来避免使用日历的外部依赖性和性能损失。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;}
随时随地看视频慕课网APP

相关分类

Java
我要回答