首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何比较没有时间部分的两个日期?

如何比较没有时间部分的两个日期?
EN

Stack Overflow用户
提问于 2009-09-18 00:02:56
回答 24查看 323.3K关注 0票数 221

我希望有一个忽略java.util.Date的时间部分的compareTo方法。我想有很多方法可以解决这个问题。最简单的方法是什么?

EN

回答 24

Stack Overflow用户

发布于 2010-01-26 21:29:00

Apache commons-lang几乎无处不在。那么这个呢?

代码语言:javascript
复制
if (DateUtils.isSameDay(date1, date2)) {
    // it's same
} else if (date1.before(date2)) {
   // it's before
} else {
   // it's after
}
票数 137
EN

Stack Overflow用户

发布于 2009-09-17 16:15:59

如果你真的想使用java.util.Date,你可以这样做:

代码语言:javascript
复制
public class TimeIgnoringComparator implements Comparator<Date> {
  public int compare(Date d1, Date d2) {
    if (d1.getYear() != d2.getYear()) 
        return d1.getYear() - d2.getYear();
    if (d1.getMonth() != d2.getMonth()) 
        return d1.getMonth() - d2.getMonth();
    return d1.getDate() - d2.getDate();
  }
}

或者,使用日历(首选,因为getYear()等方法已被弃用)

代码语言:javascript
复制
public class TimeIgnoringComparator implements Comparator<Calendar> {
  public int compare(Calendar c1, Calendar c2) {
    if (c1.get(Calendar.YEAR) != c2.get(Calendar.YEAR)) 
        return c1.get(Calendar.YEAR) - c2.get(Calendar.YEAR);
    if (c1.get(Calendar.MONTH) != c2.get(Calendar.MONTH)) 
        return c1.get(Calendar.MONTH) - c2.get(Calendar.MONTH);
    return c1.get(Calendar.DAY_OF_MONTH) - c2.get(Calendar.DAY_OF_MONTH);
  }
}
票数 59
EN

Stack Overflow用户

发布于 2009-09-17 16:04:51

我更喜欢直接使用java.util.DateJoda库insetad,因为java.util.Date对日期和时间进行了区分(请参阅YearMonthDayDateTime类)。

但是,如果您确实希望使用java.util.Date,我建议您编写一个实用方法;

代码语言:javascript
复制
public static Date setTimeToMidnight(Date date) {
    Calendar calendar = Calendar.getInstance();

    calendar.setTime( date );
    calendar.set(Calendar.HOUR_OF_DAY, 0);
    calendar.set(Calendar.MINUTE, 0);
    calendar.set(Calendar.SECOND, 0);
    calendar.set(Calendar.MILLISECOND, 0);

    return calendar.getTime();
}
票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1439779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档