为什么我不能使用java.util.Date类中的getTime()来测量经过的时间?

时间:2016-03-03 22:10:48

标签: java time

我想测量Java程序需要做的事情的时间。

仅在书中提到了java.util.Date类,所以我认为使用它来解决这个问题是正确的(或足够正确)。

我有以下代码:

 time.start();

for(int i=0;i<array.length;i++)
array[i]=(int)(Math.random()*100000);

time.stop();

其中time.start()和time.stop(在Java类中):

Date timeMeasured = new Date();


    public void start(){
    startTime = timeMeasured.getTime();

}

public void stop(){
    endTime = timeMeasured.getTime();

}

经过一些研究后我发现我应该使用System.currentTimeMillis()来测量时间,并在尝试之后才能正常工作。我的代码每次都返回0。

有人可以解释原因吗,你能纠正我的代码吗,不管这是不对的做法吗?

1 个答案:

答案 0 :(得分:1)

使用默认构造函数创建Date对象时,他将表示创建时间。 因此,{{1}}的任何调用都将返回创建对象的日期,而不是当前时间。

如果不是创建一个全局对象而是每次使用前都会实例化它,那么你的代码就可以工作了,但是创建对象所需的时间可能会搞砸你的计算。