Wie zeige ich Millisekunden oder Mikrosekunden in der Zeit an?
Verwenden Sie Intl.DateTimeFormat, um Präzision unter einer Sekunde in Zeitanzeigen darzustellen
Einführung
Die meisten Zeitanzeigen zeigen Stunden, Minuten und Sekunden. Diese Präzision funktioniert für Zeitpläne, Termine und die alltägliche Zeitmessung. Einige Anwendungen erfordern jedoch eine Präzision unter einer Sekunde, um Zehntel, Hundertstel oder Tausendstel einer Sekunde anzuzeigen.
Performance-Monitoring-Tools zeigen Antwortzeiten in Millisekunden an. Wissenschaftliche Anwendungen zeigen Messungen mit Präzision unter einer Sekunde an. Video- und Audioanwendungen zeigen Zeitstempel bis auf die Millisekunde genau an. Logging-Systeme zeichnen Ereignisse mit Zeitstempeln in Sekundenbruchteilen auf, um eng beieinander liegende Ereignisse zu unterscheiden.
JavaScripts Intl.DateTimeFormat bietet die Option fractionalSecondDigits, um Präzision unter einer Sekunde anzuzeigen. Diese Lektion erklärt, was Sekundenbruchteile sind, wie man sie anzeigt und wann Sie dieses Präzisionsniveau benötigen.
Präzision von Sekundenbruchteilen verstehen
Eine Sekunde ist die Basiseinheit der Zeitmessung. Sekundenbruchteile repräsentieren Teile einer Sekunde, 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 Präzision, die von Intl.DateTimeFormat unterstützt wird.
JavaScript repräsentiert Sekundenbruchteile als Ziffern nach einem Dezimalkomma. 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 Mikrosekundenpräzision. Mikrosekunden stellen Millionstel einer Sekunde dar und würden sechs Ziffern nach dem Dezimaltrennzeichen erfordern. Die API unterstützt maximal drei Ziffern, was Millisekundenpräzision ermöglicht.
JavaScript-Date-Objekte speichern die Zeit intern als Millisekunden seit dem 1. Januar 1970 UTC. Das bedeutet, dass die zugrunde liegenden Daten Millisekundenpräzision unterstützen, aber keine Mikrosekundenpräzision.
Verwendung der Option fractionalSecondDigits
Die Option fractionalSecondDigits steuert, wie viele Ziffern nach dem Dezimaltrennzeichen im Sekundenfeld erscheinen. Sie akzeptiert die Werte 1, 2 oder 3.
Sie müssen die Option second einschließen, wenn Sie fractionalSecondDigits verwenden. Ohne die Option second lässt der Formatter das Sekundenfeld vollständig weg, und die Option für Sekundenbruchteile hat keine Wirkung.
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"
Dieser Formatter zeigt Stunden, Minuten, Sekunden und drei Sekundenbruchteilziffern an. Das Date-Objekt enthält Millisekundenpräzision, und der Formatter zeigt alle drei Ziffern an.
Anzeige einer Sekundenbruchteilziffer
Wenn Sie fractionalSecondDigits auf 1 setzen, 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));
// Output: "2:23:45.6 PM"
Der Formatter rundet den Wert auf eine Dezimalstelle. Der ursprüngliche Wert enthält 678 Millisekunden, was 0,678 Sekunden entspricht, was bei Anzeige mit einer Ziffer auf 0,6 Sekunden abgerundet wird.
Anzeige von zwei Sekundenbruchteilziffern
Wenn Sie fractionalSecondDigits auf 2 setzen, 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));
// Output: "2:23:45.67 PM"
Der Formatter rundet den Wert auf zwei Dezimalstellen. Der Wert 678 Millisekunden entspricht 0,678 Sekunden, was bei Anzeige mit zwei Ziffern auf 0,67 Sekunden abgerundet wird.
Drei Nachkommastellen für Sekundenbruchteile anzeigen
Wenn Sie fractionalSecondDigits auf 3 setzen, 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 sind 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"
Die britisch-englische Locale 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 Zeitzoneninformationen 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 die New Yorker Zeit und zeigt das Ergebnis mit Millisekunden-Präzision und der Zeitzonen-Abkürzung an.
Wie Sekundenbruchteile über verschiedene Locales formatiert werden
Verschiedene Locales verwenden unterschiedliche Dezimaltrennzeichen für Zahlen, aber Sekundenbruchteile verwenden konsistent einen Punkt als Dezimaltrennzeichen über alle Locales hinweg.
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 Locales 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 die Performance-Analyse an.
Wissenschaftliche Datenprotokollierung erfordert Zeitstempel unterhalb der Sekundenebene.
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.
Videoplayer-Zeitstempel zeigen die Position mit Subsekundenpräzision 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. Das Setzen 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 benutzerseitige Zeitstempel benötigen selten Subsekundenpräzision. Das Hinzufügen unnötiger Präzision macht Zeitangaben schwerer lesbar und verständlich.
Wählen Sie die angemessene Anzahl von Ziffern für Ihre Anforderungen. Eine Ziffer bietet ausreichende Präzision für viele Anwendungsfälle und bleibt dabei lesbar. Drei Ziffern bieten maximale Präzision, erzeugen jedoch längere, technischer wirkende Zeitstempel.
Zusammenfassung
Die Option fractionalSecondDigits zeigt Subsekundenpräzision in der Zeitformatierung an. Sie akzeptiert Werte von 1, 2 oder 3, um Zehntel-, Hundertstel- oder Tausendstelsekunden anzuzeigen. Sie müssen die Option second einschließen, wenn Sie fractionalSecondDigits verwenden.
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.
Sekundenbruchteile funktionieren mit allen anderen Zeitformatierungsoptionen, einschließlich 12-Stunden- und 24-Stunden-Format, Zeitzonen und verschiedenen Locales. Das Dezimaltrennzeichen für Sekundenbruchteile bleibt über alle Locales hinweg konsistent.
Verwenden Sie Sekundenbruchteile für Performance-Monitoring, wissenschaftliche Daten, Debugging-Logs und Medien-Zeitstempel. Vermeiden Sie Sekundenbruchteile bei der alltäglichen Zeitmessung, wo Sekundenpräzision ausreicht.