Date.getTime () renvoie des millisecondes depuis le 1er janvier 1970. Unixtime est en secondes depuis le 1er janvier 1970. En général, je ne code pas en Java, mais je travaille sur des corrections de bugs. J'ai:
Date now = new Date();
Long longTime = new Long(now.getTime()/1000);
return longTime.intValue();
Existe-t-il un meilleur moyen d'obtenir unixtime en java?
MISE À JOUR
Sur la suggestion de John M, je me suis retrouvé avec:
return (int) (System.currentTimeMillis() / 1000L);
Évitez la création d'objet Date avec w/ System.currentTimeMillis () . Une division par 1000 vous amène à Unix Epoch.
Comme indiqué dans un commentaire, vous souhaitez généralement un objet primitif long (minuscule-l long) et non un objet encadré long (majuscule-L long) pour le type de la variable unixTime.
long unixTime = System.currentTimeMillis() / 1000L;
Java 8 a ajouté une nouvelle API pour travailler avec les dates et les heures. Avec Java 8, vous pouvez utiliser
import Java.time.Instant
...
long unixTimestamp = Instant.now().getEpochSecond();
Instant.now()
renvoie un Instant qui représente l'heure système actuelle. Avec getEpochSecond()
, vous obtenez les secondes d’époque (heure unix) de Instant
.