2016-07-23 4 views
0

interpretieren Wenn ich die Quelle html von einer Direct Message Seite auf Twitter speichern, finde ich so etwas wie diese, das einen detaillierten Zeitstempel zu enthalten scheint:Wie Daten Zeit in Twitter DM

< span class = "_ Zeitstempel "Data-Arie-label-part =" liest“Daten-time = "1469168058" Daten-lang~~POS=TRUNC = "true" data-Include-sec = "true" > 22 Jul </span >

Wenn i lese diese Daten (in Java zum Beispiel, einschließlich nur java.io. *) gibt es eine Möglichkeit, dass ich die Zahl in data-time="1469168058" zu Datum und Uhrzeit mit Stunden und Minuten und vielleicht Sekunden konvertieren kann?

+0

Und auch ein Duplikat von [dies] (http://Stackoverflow.com/q/8262333/642706) und [das] (http://Stackoverflow.com/q/11871120/642706) und viele mehr. Bitte suchen Sie vor dem Buchen nach Stack Overflow. –

+0

Bitte @Basil meine Frage genauer lesen. Ich habe nicht gefragt, wie man "Sekunden aus der Epoche" in Java konvertiert. Ich begann mit Twitter und HTML-Scan. Wenn das gleich ist wie Sekunden von Java-Epoche, in Ordnung. Sag's mir einfach. Ich habe gesucht und konnte keine Verweise auf "Daten-Zeit" finden. Es tut uns leid. – believer

+0

Als solche ist dies keine doppelte Frage - aus zwei Gründen. Erstens, wie ich oben sagte, war dies eine Twitter-Frage. Zweitens sind die "doppelten" Antworten nicht genau richtig - Twitter passt den Sekundenwert für meine Ortszeit an. Die Konvertierung ist für die lokale Zeit korrekt * wenn * ich keine Zeitzone einstelle. – believer

Antwort

0

Unix/Posix Zeit

Eine Zählung um eineinhalb Millionen bedeutet in der Regel eine Anzahl von ganzen Sekunden seit dem ersten Moment des Jahres 1970 in UTC. Dies ist allgemein bekannt als Unix time or Posix time.

java.time

In Java ein Moment auf der Timeline in UTC mit einer Auflösung von nanosecond wird durch die Instant Klasse dargestellt.

long input = 1_469_168_058L; 
Instant instant = Instant.ofEpochSecond (input); 

Zum selben Augenblick durch die Linse einer bestimmten Zeitzone zu sehen, gilt ein ZoneId ein ZonedDateTime Objekt zu erzeugen.

ZoneId zoneId = ZoneId.of ("America/Chicago"); 
ZonedDateTime zdt = instant.atZone (zoneId); 

Dump zur Konsole.

System.out.println ("input: " + input + " | instant: " + instant + " | zdt: " + zdt); 

Eingang: 1469168058 | Augenblick: 2016-07-22T06: 14: 18Z | zdt: 2016-07-22T01: 14: 18-05: 00 [America/Chicago]

Dieses Ergebnis entspricht dem 22. Juli auch in Ihrem Datenblock enthalten.