I've discovered through extensive printf-debugging that System.nanoTime() isn't actually what it purports to be: a monotonically increasing long representing nanoseconds with at least millisecond accuracy.
I've made two calls to System.nanoTime() about 14 hours apart, and yet the time delta returned is about 13.1 hours.
What might be the reason for this inaccuracy?