为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

素胚勾勒不出你 2019-10-15 11:03:46
我需要比较两个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;

}


查看完整回答
反对 回复 2019-10-15
  • 3 回答
  • 0 关注
  • 908 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信