Bei der Arbeit mit zeitgestempelten Daten besteht häufig die Notwendigkeit, eine lange Ganzzahl zu konvertieren, die die Anzahl der Millisekunden seither darstellt die Epoche (1. Januar 1970) in ein besser lesbares und informativeres Format, wie zum Beispiel „h:m:s:ms“ (Stunden:Minuten:Sekunden:Millisekunden).
Im Kontext von log4j kann das Abrufen eines Zeitstempels von einem Protokollierungsereignis über das Feld logEvent.timeStamp erreicht werden. Das Konvertieren dieses Zeitstempels in eine formatierte Zeit kann jedoch eine Herausforderung sein.
Falsche Ansätze:
Versuche, die Millisekunden direkt umzuwandeln, indem Operationen wie das Teilen durch die Anzahl der Sekunden in verwendet werden Eine Stunde oder die Verwendung der TimeUnit.MILLISECONDS.toMinutes()-Methode führt zu falschen Ergebnissen, da der Konvertierungsprozess mehr als nur einfach ist Arithmetik.
Richtige Lösung:
Um einen Millisekunden-Zeitstempel genau in eine formatierte Zeitzeichenfolge umzuwandeln, können wir die integrierten Datums- und Uhrzeitformatierungsfunktionen von Java nutzen:
Date date = new Date(logEvent.timeStamp); DateFormat formatter = new SimpleDateFormat("HH:mm:ss.SSS"); formatter.setTimeZone(TimeZone.getTimeZone("UTC")); String dateFormatted = formatter.format(date);
Dieses Beispiel zeigt den Konvertierungsprozess:
Andere Formatierungsoptionen:
Die Java-API bietet eine Vielzahl von SimpleDateFormat-Datumsmustern zur Unterstützung verschiedener Formatierungsstile. Hier sind einige gängige Optionen:
Pattern | Output |
---|---|
"h:m:s:ms" | 03:34:56:123 |
"EEE, MMM d, yyyy hh:mm:ss a" | Wed, Mar 17, 2023 03:34:56 PM |
"yyyy-MM-dd HH:mm:ss.SSS" | 2023-03-17 15:34:56.123 |
Das obige ist der detaillierte Inhalt vonWie konvertiere ich Millisekunden-Zeitstempel in für Menschen lesbare Zeitzeichenfolgen in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!