One fact of System.nanoTime() , <blockquote>I think System.nanoTime()'s contract right now is that it *always*
increases by a fixed amount.  In other words, it's monotonic.  So NTP
updates, or user's changing system time can never cause any change to
System.nanoTime().</blockquote>
https://jsr-310.dev.java.net/servlets/ReadMsg?list=dev&msgNo=1282

A more detailed explanation of nanoTime() and currentMilliSecond() - http://blogs.sun.com/dholmes/entry/inside_the_hotspot_vm_clocks

http://blog.joda.org/2014/11/converting-from-joda-time-to-javatime.html
