我正在比较我的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)
,以便两个对象都可以具有相同的值。但它不起作用。任何帮助表示赞赏。谢谢!
答案 0 :(得分: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()
答案 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)
如果您将date
和deliverydate
设为date objects
,则可以使用
date.compareTo(deliveryDate);
如果日期相同,则返回0
,如果日期比deliveryDate
更新,则返回大于0的值;如果日期在{{1}之前,则返回小于0的值}。
要将日期转换为deliveryDate
,您可以使用以下内容:
date format