Notez également que vous pouvez utiliser la classe TimeUnit pour aider à la conversion. Avec les anciennes versions de Java, le code suivant pourrait être un exemple pour transformer un temps de traitement dans un autre format de l'heure:
long startTime = System.nanoTime();
//Processing in-between.
long endTime = System.nanoTime();
long duration = endTime - startTime;
duration = TimeUnit.SECONDS.convert(duration, TimeUnit.NANOSECONDS);
Notez que les versions plus récentes de Java ont des raccourcis dans la classe TimeUnit.
L'échantillon ci-dessus tournera des nanosecondes en secondes. Notez également que cela le tronque de sorte que vous perdez une certaine précision. Par conséquent, si vous passez aux minutes, vous perdrez la précision des secondes. Si vous souhaitez obtenir un résultat de "12 minutes et 32 secondes", vous devrez effectuer un traitement supplémentaire avec cette solution.
Et juste au cas où ... Précision signifie grossièrement le nombre de décimales (le nombre 1.00000000000135738 a beaucoup de précision) alors que la précision indique quelque chose sur le nombre de ces décimales ont raison. Par exemple 1.0001 avec une précision de 0.01 pourrait être n'importe où entre 1.0101 et 0.9901, tandis que 1.0 avec une précision de 0.000001 est garanti entre 0.000009 et 1.000001 –
qui fonctionne, mais le nombre qu'il retourne est comme 10, ou 5 au lieu de 10.234234234 ou quelque chose. dois-je lancer? – Blankman
@Blankman: Si vous voulez obtenir un nombre comme 10.234234234, vous pouvez utiliser '(fin - start)/(double) 1000000' (ou' (fin - start)/1000000.', ou '(fin - start)/(float) 1000000' si vous voulez float) –