También tenga en cuenta que puede utilizar la clase TimeUnit para ayudar a la conversión. Con versiones anteriores de Java, el código siguiente podría ser un ejemplo para transformar un tiempo de procesamiento en algún otro formato de hora:
long startTime = System.nanoTime();
//Processing in-between.
long endTime = System.nanoTime();
long duration = endTime - startTime;
duration = TimeUnit.SECONDS.convert(duration, TimeUnit.NANOSECONDS);
Tenga en cuenta que las nuevas versiones de Java tienen accesos directos en la clase TimeUnit.
La muestra anterior convertirá nanosegundos en segundos. También tenga en cuenta que esto lo trunca, por lo que pierde cierta precisión. Por lo tanto, si cambia a minutos, perderá la precisión de segundos. Si desea obtener un resultado de "12 minutos y 32 segundos", entonces deberá realizar un procesamiento adicional con esta solución.
Y por las dudas ... Precisión significa aproximadamente el número de decimales (el número 1.00000000000135738 tiene mucha precisión) mientras que la precisión dice algo acerca de cuántos de esos decimales son los correctos. Por ejemplo, 1.0001 con una precisión de 0.01 podría estar entre 1.0101 y 0.9901, mientras que 1.0 con una precisión de 0.000001 está garantizado entre 0.000009 y 1.000001 –
que funciona, pero el número que devuelve es como 10 o 5 en lugar de 10.234234234 o algo. ¿Tengo que lanzar? – Blankman
@Blankman: si quieres obtener un número como 10.234234234, puede usar '(fin-inicio)/(doble) 1000000' (o' (fin-inicio)/1000000', o '(fin-inicio)/(flotar) 1000000' si quiere flotar) –