It's not absolute time ... the JVM returns nanoseconds since JVM started thus we can't use it to determine absolute time and therefore anything involving absolute time would not work.

http://docs.oracle.com/javase/6/docs/api/java/lang/System.html#nanoTime()

> This method can only be used to measure elapsed time and is not related to any other notion of system or wall-clock time. The value returned represents nanoseconds since some fixed but arbitrary time (perhaps in the future, so values may be negative).