【问题标题】:How to know if a Date is within the same day of other date [duplicate]如何知道一个日期是否在其他日期的同一天[重复]
【发布时间】:2012-05-08 12:41:05
【问题描述】:

如果我在 Java (Android) 中有两个日期(Date1 和 Date2),我如何知道 Date2 是否在 Date1 的同一天内? (注意:如果 Date2-Date1

 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 吗?
  • 我猜Date2: day=15... 是有意的。

标签: java android


【解决方案1】:

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

【讨论】:

  • 并不是说这个解决方案不尊重时区
【解决方案2】:

我从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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-04
    • 2019-11-06
    • 2019-01-13
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    • 2020-03-20
    • 2014-04-21
    相关资源
    最近更新 更多