Comment obtenir l'heure système en Java sans créer de nouvelle date


J'ai besoin d'obtenir la date système, et Java fournit le new Date().getTime().

Mais je dois éviter la nouvelle allocation d'objet (je travaille sur un système embarqué). Comment puis-je obtenir l'heure système sans allouer un nouvel objet Date?

Author: Lonely Neuron, 2011-02-01

4 answers

Comme le dit jzd, vous pouvez utiliser System.currentTimeMillis. Si vous en avez besoin dans un Date objet, mais vous ne voulez pas créer un nouveau Date objet, vous pouvez utiliser Date.setTime réutilisait Date objet. Personnellement, je déteste le fait que Datesoit mutable, mais peut-être cela vous est utile dans ce cas particulier. De même, Calendar a une méthode setTimeInMillis.

Si possible cependant, il serait probablement préférable de le garder comme long. Si vous avez seulement besoin d'un horodatage, effectivement, alors ce serait la meilleure approche.

 57
Author: Jon Skeet, 2011-02-01 14:25:50

Cela devrait fonctionner:

System.currentTimeMillis();
 48
Author: jzd, 2011-02-01 14:22:57

Vous pouvez utiliser System.currentTimeMillis().

, Au moins dans OpenJDK, Date utilise ce sous les couvertures.

L'appel en System est à une méthode JVM native, donc nous ne pouvons pas dire avec certitude qu'il n'y a pas d'allocation qui se passe sous les couvertures, bien que cela semble peu probable ici.

 10
Author: Mark Elliot, 2011-02-01 14:30:05

Utilisez le système .currentTimeMillis() ou Système.nanoTime () .

 6
Author: Aravind R. Yarram, 2016-01-05 01:55:08