Je dois obtenir la date du système et Java fournit la new Date().getTime()
].
Mais je dois éviter une nouvelle allocation d'objets (je travaille sur un système embarqué). Comment obtenir l'heure système sans allouer un nouvel objet Date
?
Comme jzd dit, vous pouvez utiliser System.currentTimeMillis
. Si vous en avez besoin in un objet Date
mais que vous ne voulez pas créer un objet nouveaDate
, vous pouvez utiliser Date.setTime
pour réutiliser un objet Date
existant. 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 un long
. Si vous n’avez besoin que d’un horodatage, c’est la meilleure approche.
Cela devrait fonctionner:
System.currentTimeMillis();
Vous pouvez utiliser System.currentTimeMillis()
.
Au moins dans OpenJDK, Date
utilise ceci sous les couvertures.
L'appel entrant System
est destiné à une méthode JVM native, nous ne pouvons donc pas affirmer avec certitude qu'aucune allocation n'est effectuée sous les couvertures, bien que cela semble improbable ici.
Utilisez System.currentTimeMillis () ou System.nanoTime ().