日期不会被比较



我正在比较我的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),以便两个对象可以具有相同的值。但这行不通。任何帮助都是感激的。谢谢!

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

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());
}

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

如果您将datedeliverydate设置为date objects,那么您可以使用

date.compareTo(deliveryDate);

这将返回:如果日期相同,则返回0;如果date比deliveryDate最近,则返回大于0的值;如果date在deliveryDate之前,则返回小于0的值。

要将日期输入date format,可以使用如下命令:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date = sdf.parse(date);
        Date deliveryDate = sdf.parse(deliveryTime);

相关内容

  • 没有找到相关文章

最新更新