2013-01-12 37 views
2

我有一段时间在Timestamp格式,这是一个产品的到期时间,我必须检查这个产品是否过期。 我该怎么办?比较时间戳和实际时间(Java)

我想这样,但实际上该函数总是返回TRUE(我想不通为什么)

public boolean isAuctionExpired() { 

    // expiration_time is setted before, is the expiration date of a product! 

    Timestamp actualTimeStampDate = null; 

    try { 
     Date actual = new Date(); 
     actualTimeStampDate = new Timestamp(actual.getTime()); 
    } catch (Exception e) { 
     System.out.println("Exception :" + e); 
    } 

    boolean expired = (expiration_time.getTime() < actualTimeStampDate.getTime()); 

    // Everything seems ok, except the boolean 
    System.out.println("product exp: "+expiration_time+", actual: "+actualTimeStampDate+" expired? "+expired); 

    return expired; 
} 

我觉得我做了愚蠢的错误,但我不能看到它!

回答

6

所有你应该需要的是

return expiration_time.before(new Date()); 

因为TimestampDate

一个子类。如果它不工作,然后有一些错误的expiration_time

+0

好吧,它的工作为了我!非常感谢你! –

0

价值简单地使用这个代码:

public boolean isAuctionExpired() { 
    return expiration_time.getTime() <= System.currentTimeMillis(); 
}