Comment puis-je convertir des minutes d'un horodatage Unix en date et heure en Java. Par exemple, horodatage 1372339860
correspondre à Thu, 27 Jun 2013 13:31:00 GMT
.
Je veux convertir 1372339860
à 2013-06-27 13:31:00 GMT
.
Edit: En fait, je veux que ce soit selon le calendrier américain GMT-4, donc ce sera 2013-06-27 09:31:00
.
Vous pouvez utiliser SimlpeDateFormat pour formater votre date de la manière suivante:
long unixSeconds = 1372339860;
// convert seconds to milliseconds
Date date = new Java.util.Date(unixSeconds*1000L);
// the format of your date
SimpleDateFormat sdf = new Java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
// give a timezone reference for formatting (see comment at the bottom)
sdf.setTimeZone(Java.util.TimeZone.getTimeZone("GMT-4"));
String formattedDate = sdf.format(date);
System.out.println(formattedDate);
Le modèle que SimpleDateFormat
prend si très flexible, vous pouvez archiver dans le javadocs toutes les variations que vous pouvez utiliser pour produire une mise en forme différente en fonction des modèles que vous écrivez pour un Date
spécifique. http://docs.Oracle.com/javase/7/docs/api/Java/text/SimpleDateFormat.html
Date
fournit une méthode getTime()
qui renvoie les millisecondes depuis EPOC, il est nécessaire de donner à SimpleDateFormat
un fuseau horaire pour formater la date correctement en fonction de votre fuseau horaire. sinon, il utilisera le fuseau horaire par défaut de la machine virtuelle Java (qui, s'il est bien configuré, sera correct).Java 8 introduit le Instant.ofEpochSecond
méthode d’utilité pour créer un Instant
à partir d’un horodatage Unix, elle peut ensuite être convertie en ZonedDateTime
et enfin formaté, par exemple:
final DateTimeFormatter formatter =
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
final long unixTime = 1372339860;
final String formattedDtm = Instant.ofEpochSecond(unixTime)
.atZone(ZoneId.of("GMT-4"))
.format(formatter);
System.out.println(formattedDtm); // => '2013-06-27 09:31:00'
Je pensais que cela pourrait être utile aux personnes qui utilisent Java 8.
Vous devez le convertir en millisecondes en multipliant l'horodatage par 1000:
Java.util.Date dateTime=new Java.util.Date((long)timeStamp*1000);