我试图了解如何跟踪创建对象的秒数。
我正在处理的程序模拟杂货店。
有些食物在经过一段时间后具有破坏的特性,而这一切都是在名为item
的{{1}}类的子类中完成的。秒数不需要打印,但跟踪使用groceryItem
字段,我不太了解如何精确计算秒数。
我正在考虑使用Java.util.Timer或Java.util.Date库,但我不完全理解如何将它们用于我的问题。
我对Java没有很好的理解,但任何帮助都会受到赞赏。
答案 0 :(得分:6)
您可以使用自纪元以来的毫秒long
值或java.util.Date
个对象(内部使用long
值,自纪元以来的毫秒数,但更容易显示/调试)。< / p>
// 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);
}
}
答案 1 :(得分:4)
创建对象时。
Date startDate = new Date();
完成通话后;
Date endDate = new Date();
经过的秒数为:
int numSeconds = (int)((endDate.getTime() - startDate.getTime()) / 1000);