Date.getTime () renvoie des millisecondes depuis le 1er janvier 1970. Unixtime est en secondes depuis le 1er janvier 1970. Je ne code généralement pas en java, mais je travaille sur quelques corrections de bogues. 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?
java
unix-timestamp
Gary Richardson
la source
la source
long
pasint
. Il n'y a vraiment aucune raison d'utiliserint
un horodatage, à moins que vous n'utilisiez une granularité différente comme 1 seconde = 4 secondes, etc.Réponses:
Évitez la création d'objet Date avec System.currentTimeMillis () . Une division par 1000 vous amène à l'époque Unix.
Comme mentionné dans un commentaire, vous voulez généralement un objet long primitif (long minuscule-l) et non un objet encadré long (long L majuscule) pour le type de la variable unixTime.
la source
Java 8 a ajouté une nouvelle API pour travailler avec les dates et les heures. Avec Java 8, vous pouvez utiliser
Instant.now()
renvoie un instant qui représente l'heure actuelle du système. AvecgetEpochSecond()
vous obtenez les secondes d'époque (temps unix) duInstant
.la source
Instant.now().getEpochSecond()
,new Date().getTime()
etSystem.currentTimeMillis()
import java.time.Instant
si vous êtes à Scala