如何打印经过的时间(秒)java

时间:2014-04-21 22:25:41

标签: java time equation

在我的游戏循环方法中,我试图打印程序在java中运行的时间。我只是尝试了System.out.println(System.nanoTime() / 1000000);,因为它是一秒钟内的毫秒数。(如果你不知道的话)它打印了接近结束的秒数,但我想要精确的秒来进行测试。我在网上搜索,有人建议使用我想到的相同公式。任何人都可以给出一个确切的吗?

3 个答案:

答案 0 :(得分:1)

将上一次存储在私人会员中。

private long previousTime;

在构造函数中初始化它。

previousTime = System.currentTimeMillis();

将它与run方法中的当前时间(游戏循环的每次迭代)进行比较

long currentTime = System.currentTimeMillis();
double elapsedTime = (currentTime - previousTime) / 1000.0;
System.out.println("Time in seconds : " + elapsedTime);
previousTime = currentTime;

答案 1 :(得分:1)

除了提供的其他答案外,您还可以使用标准库StopWatch,就像Google的Guava API提供的那样:

Stopwatch stopwatch = new Stopwatch();
stopwatch.start();
calculate();
stopwatch.stop(); // optional

long Seconds= stopwatch.elapsedMillis() / 1000000; // equals 1 second

答案 2 :(得分:0)

您可以使用System.currentTimeMillis以毫秒为单位获取当前时间。

如果您在应用程序开始时和结束时选择此值,则减去这两个值将为您提供应用程序运行的时间。

final long start = System.currentTimeMillis();
// your code here...
final long end = System.currentTimeMillis();
System.out.println("The program was running: " + (end-start) + "ms.");

如果您想在几秒钟内完成,只需将其除以您提到的1000就可以了。

System.out.println("The program was running: " + ((double)(end-start)/1000.0d) + "ms.");