La diferencia entre System.nanoTime() y System.currentTimeMillis()
El valor inicial de System.nanoTime() es un número seleccionado "al azar" cuando se inicia esta instancia de JVM. Cambia a medida que se ejecuta la JVM. System.currentTimeMillis representa la hora del sistema, lo que resulta en varias diferencias. entre ellos:
Basado en la insensibilidad horaria del sistema de System.nanoTime(), se usa ampliamente en escenarios que requieren tiempo relativo, como ScheduledThreadPoolExecutor, que agrega una hora a las 0:00 si la tarea es ejecutado más tarde, solo se activará después de que el sistema haya estado funcionando durante 1 hora. Durante este período, no importa cómo se modifique la hora del sistema, no se verá afectado.
Utilice System.nanoTime (). para completar la lista de boxes una vez. Complete los registros de instancia de System.currentTimeMills()
.