0

我正在比较我的 android 应用程序中的日期,但是对于我的相等日期,compareTo或者equals方法返回我的日期不相等。我已经调试过了,我可以看到我的两个对象都有相同的值。但有些如何它不起作用。以下是我这样做的方式:

public static boolean compareDates(long deliveryTime, Date date) throws ParseException {

    Date deliveryDate = convertLongToDate(deliveryTime);
    deliveryDate.setHours(0);
    deliveryDate.setMinutes(0);
    deliveryDate.setSeconds(0);

    if (deliveryDate.equals(date))
    {
        return true;
    }

    return false;
}

我的date对象不包含time,因此我也将deliverTime's时间设置0(zero)为,以便两个对象可以具有相同的值。但它不起作用。任何帮助表示赞赏。谢谢!

4

3 回答 3

0

deliveryTime只是比较而date.getTime()不是转换deliveryTime为日期会不会更容易?

编辑

既然你没有提到你想忽略毫秒,你可以这样做:

(deliveryTime / 1000) == (date.getTime() / 1000) 

那应该去掉毫秒。或者,

Calendar c = Calendar.getInstance();
c.setTime(deliveryTime);
c.set(Calendar.MILLISECOND, 0);
//Clear out the other fields you don't care to compare
Date deliveryDate = c.getTime()
于 2013-03-11T13:26:54.873 回答
0

我会Date从 中创建一个对象deliveryTime,然后比较小时、分钟和秒。代码如下。

public static boolean compareDates(long deliveryTime, Date date) {
  Date d = new Date(deliveryTime);
  return(d.getHours() == date.getHours() && d.getMinutes() == date.getMinutes() && d.getSeconds() == date.getSeconds());
}
于 2013-03-11T13:41:27.363 回答
0

如果你 makedatedeliverydateinto date objects,那么你可以使用

date.compareTo(deliveryDate);

这将返回:0如果日期相同,则大于 0 的值如果 date 比 更近deliveryDate,并且值小于 0 如果 date 早于deliveryDate

要将您的日期放入date format,您可以使用以下内容:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date = sdf.parse(date);
        Date deliveryDate = sdf.parse(deliveryTime);
于 2013-03-11T13:52:33.417 回答