我试图了解如何跟踪创建对象的秒数。

我正在使用的程序模拟杂货店。

某些食物会在一段时间后变质,这都是在item类的子类groceryItem中完成的。秒不需要打印,但是可以跟踪使用currentTime字段,我不太了解如何精确计算秒。

我可能正在使用Java.util.Timer或Java.util.Date库,但我不完全了解如何使用它们解决问题。

我对Java的了解不是很深,但是可以提供任何帮助。

最佳答案

您可以使用自epoch以来的毫秒数的long值,也可以使用java.util.Date对象(内部自epoch以来的毫秒数的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);
    }
}

08-04 02:40