日期没有比较?

时间:2013-03-11 13:22:20

标签: java android date datetime android-date

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

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),以便两个对象都可以具有相同的值。但它不起作用。任何帮助表示赞赏。谢谢!

3 个答案:

答案 0 :(得分:0)

deliveryTimedate.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()

答案 1 :(得分: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());
}

答案 2 :(得分:0)

如果您将datedeliverydate设为date objects,则可以使用

date.compareTo(deliveryDate);

如果日期相同,则返回0,如果日期比deliveryDate更新,则返回大于0的值;如果日期在{{1}之前,则返回小于0的值}。

要将日期转换为deliveryDate,您可以使用以下内容:

date format