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

clock, java, time, timer

Solution

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.

Problem

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

Original source

Related problems