如何在Java中计算秒数?

5
我正在尝试理解如何跟踪对象已创建的秒数。
我正在开发一个模拟杂货店的程序。
其中一些食物具有在一定时间后变质的特性,这都是在一个名为“groceryItem”的item类的子类中完成的。这些秒数不需要打印,但是使用currentTime字段进行跟踪,我不太明白如何准确计算秒数。
我考虑使用Java.util.Timer或Java.util.Date库,但我不完全了解如何将它们用于我的问题。
我对Java没有很好的理解,但任何帮助都将不胜感激。
2个回答

9

您可以使用自纪元以来的毫秒数和 java.util.Date 对象(内部使用自纪元以来的毫秒数的 long 值,但更易于显示/调试)。

// Using millis
class MyObj {
    private final long createdMillis = System.currentTimeMillis();

    public int getAgeInSeconds() {
        long nowMillis = System.currentTimeMillis();
        return (int)((nowMillis - this.createdMillis) / 1000);
    }
}

// Using Date
class MyObj {
    private final Date createdDate = new java.util.Date();

    public int getAgeInSeconds() {
        java.util.Date now = new java.util.Date();
        return (int)((now.getTime() - this.createdDate.getTime()) / 1000);
    }
}

5
当您创建对象时进行调用。
Date startDate = new Date();

完成后调用该函数;

Date endDate = new Date();

经过的秒数是:
int numSeconds = (int)((endDate.getTime() - startDate.getTime()) / 1000);

@Andreas 看到你在发布时。 - Romain Hippeau

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接