Wie zeige ich Millisekunden oder Mikrosekunden in der Zeit an?

Verwenden Sie Intl.DateTimeFormat, um Subsekunden-Präzision in Zeitanzeigen darzustellen

Einführung

Die meisten Zeitanzeigen zeigen Stunden, Minuten und Sekunden an. Diese Präzision funktioniert für Zeitpläne, Termine und die alltägliche Zeitmessung. Einige Anwendungen erfordern jedoch eine Genauigkeit unterhalb der Sekunde, um Zehntel, Hundertstel oder Tausendstel einer Sekunde anzuzeigen.

Performance-Monitoring-Tools zeigen Antwortzeiten in Millisekunden an. Wissenschaftliche Anwendungen zeigen Messungen mit Subsekunden-Präzision an. Video- und Audio-Anwendungen zeigen Zeitstempel bis auf die Millisekunde genau an. Protokollierungssysteme erfassen Ereignisse mit Zeitstempeln in Sekundenbruchteilen, um eng beieinander liegende Ereignisse zu unterscheiden.

JavaScripts Intl.DateTimeFormat bietet die Option fractionalSecondDigits, um Subsekunden-Präzision anzuzeigen. Diese Lektion erklärt, was Sekundenbruchteile sind, wie man sie anzeigt und wann man diesen Präzisionsgrad benötigt.

Verständnis der Sekundenbruchteile

Eine Sekunde ist die Basiseinheit der Zeitmessung. Sekundenbruchteile stellen Teile einer Sekunde dar, die kleiner als eine ganze Sekunde sind.

Ein Zehntel einer Sekunde entspricht 0,1 Sekunden, was 100 Millisekunden entspricht. Diese Präzision unterscheidet Ereignisse, die innerhalb eines Zehntels einer Sekunde voneinander auftreten.

Ein Hundertstel einer Sekunde entspricht 0,01 Sekunden, was 10 Millisekunden entspricht. Diese Präzision unterscheidet Ereignisse, die innerhalb eines Hundertstels einer Sekunde voneinander auftreten.

Ein Tausendstel einer Sekunde entspricht 0,001 Sekunden, was 1 Millisekunde entspricht. Dies ist die höchste von Intl.DateTimeFormat unterstützte Präzision.

JavaScript stellt Sekundenbruchteile als Ziffern nach einem Dezimalpunkt dar. Eine Ziffer zeigt Zehntel, zwei Ziffern zeigen Hundertstel und drei Ziffern zeigen Tausendstel.

Über Mikrosekunden

Der Lektionstitel erwähnt Mikrosekunden, aber Intl.DateTimeFormat unterstützt keine Mikrosekunden-Präzision. Mikrosekunden stellen Millionstel einer Sekunde dar und würden sechs Stellen nach dem Dezimalpunkt erfordern. Die API unterstützt maximal drei Stellen, was Millisekunden-Präzision bietet.

JavaScript Date-Objekte speichern intern die Zeit als Millisekunden seit dem 1. Januar 1970 UTC. Das bedeutet, dass die zugrunde liegenden Daten Millisekunden-Präzision unterstützen, aber keine Mikrosekunden-Präzision.

Verwendung der Option fractionalSecondDigits

Die Option fractionalSecondDigits steuert, wie viele Stellen nach dem Dezimalpunkt im Sekundenfeld angezeigt werden. Sie akzeptiert Werte von 1, 2 oder 3.

Bei Verwendung von fractionalSecondDigits müssen Sie die Option second einschließen. Ohne die Option second lässt der Formatierer das Sekundenfeld vollständig weg, und die Option für Sekundenbruchteile hat keine Auswirkung.

const date = new Date('2025-10-15T14:23:45.678');

const formatter = new Intl.DateTimeFormat('en-US', {
  hour: 'numeric',
  minute: 'numeric',
  second: 'numeric',
  fractionalSecondDigits: 3
});

console.log(formatter.format(date));
// Ausgabe: "2:23:45.678 PM"

Dieser Formatierer zeigt Stunden, Minuten, Sekunden und drei Nachkommastellen für Sekundenbruchteile an. Das Date-Objekt enthält Millisekunden-Präzision, und der Formatierer zeigt alle drei Stellen an.

Eine Nachkommastelle für Sekundenbruchteile anzeigen

Wenn fractionalSecondDigits auf 1 gesetzt wird, werden Zehntelsekunden angezeigt.

const date = new Date('2025-10-15T14:23:45.678');

const formatter = new Intl.DateTimeFormat('en-US', {
  hour: 'numeric',
  minute: 'numeric',
  second: 'numeric',
  fractionalSecondDigits: 1
});

console.log(formatter.format(date));
// Ausgabe: "2:23:45.6 PM"

Der Formatierer rundet den Wert auf eine Dezimalstelle. Der ursprüngliche Wert enthält 678 Millisekunden, was 0,678 Sekunden entspricht, was bei der Anzeige mit einer Stelle auf 0,6 Sekunden abgerundet wird.

Zwei Nachkommastellen für Sekundenbruchteile anzeigen

Wenn fractionalSecondDigits auf 2 gesetzt wird, werden Hundertstelsekunden angezeigt.

const date = new Date('2025-10-15T14:23:45.678');

const formatter = new Intl.DateTimeFormat('en-US', {
  hour: 'numeric',
  minute: 'numeric',
  second: 'numeric',
  fractionalSecondDigits: 2
});

console.log(formatter.format(date));
// Ausgabe: "2:23:45.67 PM"

Der Formatierer rundet den Wert auf zwei Dezimalstellen. Der Wert 678 Millisekunden entspricht 0,678 Sekunden, was bei der Anzeige mit zwei Stellen auf 0,67 Sekunden abgerundet wird.

Drei Nachkommastellen für Sekundenbruchteile anzeigen

Wenn fractionalSecondDigits auf 3 gesetzt wird, werden Tausendstel einer Sekunde angezeigt, was Millisekunden entspricht.

const date = new Date('2025-10-15T14:23:45.678');

const formatter = new Intl.DateTimeFormat('en-US', {
  hour: 'numeric',
  minute: 'numeric',
  second: 'numeric',
  fractionalSecondDigits: 3
});

console.log(formatter.format(date));
// Output: "2:23:45.678 PM"

Dies zeigt die volle Millisekunden-Präzision an, die in JavaScript Date-Objekten verfügbar ist. Drei Stellen ist die maximale Präzision, die von Intl.DateTimeFormat unterstützt wird.

Kombination mit 24-Stunden-Zeitformat

Sekundenbruchteile funktionieren mit allen Zeitformatierungsoptionen, einschließlich des 24-Stunden-Zeitformats.

const date = new Date('2025-10-15T14:23:45.678');

const formatter = new Intl.DateTimeFormat('en-GB', {
  hour: '2-digit',
  minute: '2-digit',
  second: '2-digit',
  fractionalSecondDigits: 3,
  hourCycle: 'h23'
});

console.log(formatter.format(date));
// Output: "14:23:45.678"

Das britische Englisch-Gebietsschema verwendet standardmäßig das 24-Stunden-Format, und die Option hourCycle stellt das 24-Stunden-Format sicher. Die Sekundenbruchteile erscheinen nach den Sekunden mit einem Dezimalpunkt als Trennzeichen.

Zeitzone mit Sekundenbruchteilen einbeziehen

Sie können Sekundenbruchteile zusammen mit Zeitzonenangaben anzeigen.

const date = new Date('2025-10-15T14:23:45.678Z');

const formatter = new Intl.DateTimeFormat('en-US', {
  hour: 'numeric',
  minute: 'numeric',
  second: 'numeric',
  fractionalSecondDigits: 3,
  timeZone: 'America/New_York',
  timeZoneName: 'short'
});

console.log(formatter.format(date));
// Output: "10:23:45.678 AM EDT"

Dieser Formatierer konvertiert die UTC-Zeit in New York-Zeit und zeigt das Ergebnis mit Millisekunden-Präzision und der Zeitzonenabkürzung an.

Wie Sekundenbruchteile in verschiedenen Gebietsschemas formatiert werden

Verschiedene Gebietsschemas verwenden unterschiedliche Dezimaltrennzeichen für Zahlen, aber Sekundenbruchteile verwenden durchgängig einen Punkt als Dezimaltrennzeichen in allen Gebietsschemas.

const date = new Date('2025-10-15T14:23:45.678');
const options = {
  hour: 'numeric',
  minute: 'numeric',
  second: 'numeric',
  fractionalSecondDigits: 3
};

const en = new Intl.DateTimeFormat('en-US', options);
console.log(en.format(date));
// Output: "2:23:45.678 PM"

const de = new Intl.DateTimeFormat('de-DE', options);
console.log(de.format(date));
// Output: "14:23:45.678"

const fr = new Intl.DateTimeFormat('fr-FR', options);
console.log(fr.format(date));
// Output: "14:23:45.678"

const ar = new Intl.DateTimeFormat('ar-SA', options);
console.log(ar.format(date));
// Output: "٢:٢٣:٤٥٫٦٧٨ م"

Englisch verwendet das 12-Stunden-Format mit AM/PM. Deutsch und Französisch verwenden das 24-Stunden-Format. Arabisch verwendet arabisch-indische Ziffern, behält aber die gleiche Zeitformatstruktur bei. Alle Gebietsschemas verwenden einen Punkt oder ein ähnliches Trennzeichen für die Sekundenbruchteile.

Häufige Anwendungsfälle für Sekundenbruchteile

Performance-Monitoring zeigt Antwortzeiten mit Millisekunden-Präzision an.

const startTime = new Date();
// Perform operation
const endTime = new Date();

const formatter = new Intl.DateTimeFormat('en-US', {
  hour: '2-digit',
  minute: '2-digit',
  second: '2-digit',
  fractionalSecondDigits: 3,
  hourCycle: 'h23'
});

console.log(`Operation completed at ${formatter.format(endTime)}`);
// Output: "Operation completed at 14:23:45.678"

Dies zeigt die exakte Abschlusszeit mit Millisekunden-Präzision für Leistungsanalysen an.

Wissenschaftliche Datenprotokollierung erfordert Zeitstempel mit Sekundenbruchteilen.

function logMeasurement(value) {
  const timestamp = new Date();
  const formatter = new Intl.DateTimeFormat('en-US', {
    year: 'numeric',
    month: '2-digit',
    day: '2-digit',
    hour: '2-digit',
    minute: '2-digit',
    second: '2-digit',
    fractionalSecondDigits: 3,
    hourCycle: 'h23'
  });

  console.log(`${formatter.format(timestamp)} - Measurement: ${value}`);
}

logMeasurement(23.5);
// Output: "10/15/2025, 14:23:45.678 - Measurement: 23.5"

Dies erstellt Zeitstempel mit Millisekunden-Präzision für wissenschaftliche Messungen.

Video-Player-Zeitstempel zeigen die Position mit Sekundenbruchteilen an.

function formatVideoTimestamp(milliseconds) {
  const date = new Date(milliseconds);
  const formatter = new Intl.DateTimeFormat('en-US', {
    minute: '2-digit',
    second: '2-digit',
    fractionalSecondDigits: 2,
    hourCycle: 'h23',
    timeZone: 'UTC'
  });

  return formatter.format(date);
}

console.log(formatVideoTimestamp(125678));
// Output: "02:05.67"

Dies formatiert einen Video-Zeitstempel mit Hundertstelsekunden-Präzision. Die Einstellung der Zeitzone auf UTC verhindert die Zeitzonenkonvertierung für den Dauerwert.

Wann Sekundenbruchteile verwendet werden sollten

Verwenden Sie Sekundenbruchteile, wenn Sie Ereignisse unterscheiden müssen, die innerhalb derselben Sekunde auftreten. Performance-Monitoring, Debugging, wissenschaftliche Messungen und Medienanwendungen erfordern häufig diese Präzision.

Verwenden Sie keine Sekundenbruchteile für die alltägliche Zeitmessung. Termine, Zeitpläne und benutzerorientierte Zeitstempel benötigen selten eine Präzision unterhalb der Sekunde. Das Hinzufügen unnötiger Präzision macht Zeiten schwerer lesbar und verständlich.

Wählen Sie die angemessene Anzahl von Stellen für Ihre Anforderungen. Eine Stelle bietet für viele Anwendungsfälle ausreichende Präzision und bleibt dabei lesbar. Drei Stellen bieten maximale Präzision, erzeugen aber längere, technischer aussehende Zeitstempel.

Zusammenfassung

Die Option fractionalSecondDigits zeigt Subsekunden-Präzision bei der Zeitformatierung an. Sie akzeptiert Werte von 1, 2 oder 3, um Zehntel, Hundertstel oder Tausendstel einer Sekunde anzuzeigen. Bei Verwendung von fractionalSecondDigits muss die Option second eingeschlossen werden.

JavaScripts Intl.DateTimeFormat unterstützt Millisekunden-Präzision, aber keine Mikrosekunden-Präzision. Drei Nachkommastellen repräsentieren Millisekunden, die höchste verfügbare Präzision.

Bruchteile von Sekunden funktionieren mit allen anderen Zeitformatierungsoptionen, einschließlich 12-Stunden- und 24-Stunden-Format, Zeitzonen und verschiedenen Spracheinstellungen. Der Dezimaltrennzeichen für Sekundenbruchteile bleibt über alle Spracheinstellungen hinweg konsistent.

Verwenden Sie Sekundenbruchteile für Leistungsüberwachung, wissenschaftliche Daten, Debugging-Protokolle und Medien-Zeitstempel. Vermeiden Sie Sekundenbruchteile bei der alltäglichen Zeitmessung, wo Sekundenpräzision ausreicht.