Comment mesurer la durée en secondes, à l'aide du Système.currentTimeMillis()?
Comment convertir System.currentTimeMillis();
de secondes?
long start6=System.currentTimeMillis();
System.out.println(counter.countPrimes(100000000)+" for "+start6);
La console m'indique 5761455 for 1307816001290
.
Je ne peux pas lire le nombre de secondes qui est.
Toute aide?
long s = System.currentTimeMilis() / 1000L
- Essayez Instant plus clairement: longue s = Instantanée.maintenant().getEpochSecond();
Vous devez vous connecter pour publier un commentaire.
Mise à JOUR
Une même solution plus précise serait:
nanoTime()
au lieu decurrentTimeMillis()
lorsque le résultat n'est nécessaire en secondes?nanoTime
s'existence pour moi, car il serait assez plus utile dans les scénarios où beaucoup de grands volumes d'opérations doivent être chronométré ou connecté.nanoTime()
est en haute résolution en temps réel. Il y a une légère différence en eux, et leur but.nanoTime()
n'est pas affectée par les paramètres de temps, de l'horloge, les corrections et le de telles, et à la différence des précédentes appel est garanti de ne jamais être négatif (sur la même machine virtuelle, dans le même cycle d'alimentation). Il n'y a aucune garantie pourcurrentTimeMillis()
. UtilisationcurrentTimeMillis()
à répondre "avec des paramètres de temps, combien de temps est passé depuis 1970 jan 1", et non "combien de temps passé depuis la dernière fois que j'ai appelé cette fonction"TimeUnit
Utiliser le
TimeUnit
enum intégré dans Java 5 et versions ultérieures.System.currentTimeMillis()
comme suit:
À partir de votre code, il semble que vous essayez de mesurer combien de temps un calcul a pris (par opposition à essayer de comprendre ce que l'heure actuelle est).
Dans ce cas, vous devez appeler
currentTimeMillis
avant et après le calcul, la différence, et de diviser le résultat par 1000 pour convertir quelques millisecondes à quelques secondes.J'ai écrit le code suivant dans ma dernière mission, il peut vous aider à:
Il suffit de convertir nano-secondes de milli-secondes.
Java 8, qui constitue désormais le plus concis méthode pour obtenir Timestamp Unix actuel:
System.out.println( "seconds: s" );
imprime lettre "s"Pour la conversion de quelques millisecondes à quelques secondes, depuis 1 seconde = 103 millisecondes: