How do I calculate the elapsed time of an event in Java?

Viewed 55817

What's a simple/easy way to access the system clock using Java, so that I can calculate the elapsed time of an event?

6 Answers

I would avoid using System.currentTimeMillis() for measuring elapsed time. currentTimeMillis() returns the 'wall-clock' time, which may change (eg: daylight savings, admin user changing the clock) and skew your interval measurements.

System.nanoTime(), on the other hand, returns the number of nanoseconds since 'some reference point' (eg, JVM start up), and would therefore not be susceptible to system clock changes.

This is some sample code.

long startTime = System.currentTimeMillis();
// Run some code;
long stopTime = System.currentTimeMillis();

System.out.println("Elapsed time was " + (stopTime - startTime) + " miliseconds.");

java.lang.System.currentTimeMillis() or java.lang.System.nanoTime() ought to work to measure elapsed time.

Related