2

フォーマットに時間Timestampがあります。これは製品の有効期限です。この製品の有効期限が切れているかどうかを確認する必要があります。どのようにできるのか?

この方法で試しましたが、実際には関数は常に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;
}

ばかげた間違いをしていると思いますが、見えません!

4

2 に答える 2

7

必要なのは

return expiration_time.before(new Date());

TimestampのサブクラスであるためDate

うまくいかない場合は、値に問題があります。expiration_time

于 2013-01-12T10:43:51.923 に答える
0

このコードを使用するだけです:

public boolean isAuctionExpired() {
    return expiration_time.getTime() <= System.currentTimeMillis();
}
于 2013-01-12T10:49:59.753 に答える