Konvertieren timestamp in Millisekunden, die der string formatiert die Zeit in Java
Ich versuche, zu konvertieren, ein long-Wert (Anzahl von Millisekunden verstrichen ist 1/1/1970 d.h. Epoche), um Zeit format h:m:s:ms
.
Den long-Wert verwende ich als timestamp, bekomme ich aus dem Bereich timestamp
eines logging-event von log4j.
Bisher habe ich versucht, die folgenden und es schlägt fehl:
logEvent.timeStamp/ (1000*60*60)
TimeUnit.MILLISECONDS.toMinutes(logEvent.timeStamp)
aber ich bekomme falsche Wert:
1289375173771 for logEvent.timeStamp
358159 for logEvent.timeStamp/ (1000*60*60)
21489586 for TimeUnit.MILLISECONDS.toMinutes(logEvent.timeStamp)
Wie mache ich das?
InformationsquelleAutor Cratylus | 2010-11-10
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
Sehen "=SimpleDateFormat für eine Beschreibung der anderen format-strings, die die Klasse übernimmt.
Sehen runnable Beispiel mit Eingabe von 1200 ms.
SimpleDateFormat
verwenden Sie die import-wie folgt:import java.text.*;
java.util.Date
,java.util.Calendar
, undjava.text.SimpleDateFormat
sind jetzt legacy, überlagert von der java.Zeit Klassen gebaut in Java 8 und höher. Siehe Einführung Oracle. Siehe:stackoverflow.com/a/4142428/642706Zeige ich Ihnen drei Möglichkeiten, (a) erhalten Sie das Minuten-Feld aus einem long-Wert, und (b) drucken Sie das Datum mit dem format, das Sie wünschen. Verwendet man java.util.Kalender, ein anderer verwendet Joda-Time, und der Letzte nutzt die java.Zeit framework in Java 8 und höher.
Java.Zeit Rahmen verdrängt die alten gebündelt Datum-Zeit-Klassen, und ist inspiriert von Joda-Time, definiert durch JSR-310, und erweitert durch das ThreeTen-Extra-Projekt.
Java.zeitlichen Rahmen ist der Weg zu gehen bei der Verwendung von Java 8 und höher. Ansonsten, wie Android, verwenden Sie Joda-Time. Die java.util.Datum/.Kalender-Klassen sind notorisch lästig und sollten vermieden werden.
java.util.Datum & .Kalender
Joda-Time
Ausgabe:
java.Zeit
DateTimeZone
- Objekt. Wie diese:new DateTime( timestamp, DateTimeZone.forID( "America/Montreal" ) )
Ist es möglich, apache commons (commons-lang3) und seine DurationFormatUtils Klasse.
Beispiel:
Hoffe es kann helfen ...
TimeUnit.MILLISECONDS.toSeconds()
zum Beispiel, konvertieren Millisekunden, um die gleiche Dauer in Sekunden, oder die verbleibenden Sekunden nach Subtraktion von Stunden und Minuten? Die Lösung erfordert die letzteren.Tun
wird Ihnen Stunden, nicht Minuten. Versuchen:
und Sie werden am Ende mit der gleichen Antwort wie
Versuchen Sie dies: