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
?
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 Date
soit 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.
Cela devrait fonctionner:
System.currentTimeMillis();
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.
Utilisez le système .currentTimeMillis() ou Système.nanoTime () .