Heim  >  Artikel  >  Java  >  Wie konvertiere ich Millisekunden-Zeitstempel in für Menschen lesbare Zeitzeichenfolgen in Java?

Wie konvertiere ich Millisekunden-Zeitstempel in für Menschen lesbare Zeitzeichenfolgen in Java?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-11 22:59:02268Durchsuche

How to Convert Millisecond Timestamps to Human-Readable Time Strings in Java?

Konvertieren von Millisekunden-Zeitstempeln in für Menschen lesbare Zeitzeichenfolgen in Java

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:

  • new Date() erstellt ein Date-Objekt aus dem Millisekundenwert.
  • SimpleDateFormat erstellt einen Formatierer mit einem bestimmten Datumsmuster („HH:mm:ss.SSS“ für Stunden, Minuten, Sekunden und Millisekunden).
  • Die Zeitzone des Formatierers ist auf UTC (koordinierte Weltzeit) eingestellt, um eine konsistente Formatierung zu gewährleisten.
  • formatter.format(date) gibt die formatierte Zeit als zurück eine Zeichenfolge.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn