Je peux convertir un horodatage Unix en un objet Date()
en plaçant la valeur long
dans le constructeur Date()
. Par exemple, je pourrais l’avoir sous la forme new Date(1318762128031)
.
Mais après cela, comment puis-je récupérer le timestamp Unix de l'objet Date()
?
getTime()
récupère les millisecondes écoulées depuis le 1er janvier 1970 transmises au constructeur. Il ne devrait pas être trop difficile d’obtenir le temps Unix (identique, mais en secondes).
Pour obtenir un timestamp
de Date()
, vous devez diviser getTime()
par 1000
, c'est à dire. :
Date currentDate = new Date();
currentDate.getTime() / 1000;
// 1397132691
ou simplement:
long unixTime = System.currentTimeMillis() / 1000L;
import Java.text.DateFormat;
import Java.text.ParseException;
import Java.text.SimpleDateFormat;
import Java.util.TimeZone;
public class Timeconversion {
private DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmm", Locale.ENGLISH); //Specify your locale
public long timeConversion(String time) {
long unixTime = 0;
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+5:30")); //Specify your timezone
try {
unixTime = dateFormat.parse(time).getTime();
unixTime = unixTime / 1000;
} catch (ParseException e) {
e.printStackTrace();
}
return unixTime;
}
}
Dans Java 8, il est pratique d’utiliser les nouvelles méthodes lib date et getEpochSecond
pour obtenir l’horodatage (en seconde).
Instant.now().getEpochSecond();
Utilisez SimpleDateFormat
class. Jetez un coup d’œil sur son javadoc: il explique comment utiliser les commutateurs de format.
Je ne sais pas si vous voulez réaliser cela en js ou en Java, la manière la plus simple d'obtenir le timestampt unix (c'est le temps en secondes du 1/1/1970) est la suivante:
var myDate = new Date();
console.log(+myDate); // +myDateObject give you the unix from that date