Signatur
Beschreibung
toTimeString() liefert nur den Uhrzeit-Teil eines Date-Objekts. Die Zeit wird in der lokalen Zeitzone des Systems ausgegeben. Das Format ist seit ES2018 festgelegt: HH:mm:ss GMT±hhmm (Zeitzonenname). Es entspricht damit genau dem zweiten Teil der Ausgabe von Date.prototype.toString().
Die Methode ist vor allem für Debugging, Logs und schnelle Ausgaben nützlich, zum Beispiel wenn Sie auf einen Blick die lokale Uhrzeit samt UTC-Versatz sehen wollen. Den Datumsteil erhalten Sie als Gegenstück mit toDateString().
Für Oberflächen, die Nutzer zu sehen bekommen, eignet sich toTimeString() nur bedingt. Die Stunden haben immer 24-Stunden-Format, die Ausgabe ist nicht lokalisiert, und der Zeitzonenname in Klammern hängt von der Implementierung ab. Für lokalisierte Uhrzeiten nehmen Sie besser toLocaleTimeString() oder Intl.DateTimeFormat.
Rückgabewert
HH:mm:ss GMT±hhmm (Zeitzonenname). Bei einem ungültigen Datum ist der Rückgabewert "Invalid Date".Beispiele
Uhrzeit eines Datums ausgeben
const termin = new Date(2024, 5, 15, 14, 30, 0); // 15. Juni 2024, 14:30 lokal
console.log(termin.toTimeString());
Vergleich mit toString() und toDateString()
const d = new Date(2024, 0, 10, 8, 5, 9);
console.log(d.toString());
console.log(d.toDateString());
console.log(d.toTimeString());
Nur HH:mm:ss für Log-Zeitstempel extrahieren
const logZeit = () => new Date().toTimeString().slice(0, 8);
const log = (msg) => console.log(`[${logZeit()}] ${msg}`);
log('Server gestartet');
Ungültiges Datum abfangen
const eingabe = new Date('kein Datum');
const zeit = Number.isNaN(eingabe.getTime())
? 'Ungültige Eingabe'
: eingabe.toTimeString();
console.log(eingabe.toTimeString());
console.log(zeit);
// Wichtig · Fallstricke
- Zeitzonenname: Der Text in Klammern hängt von Engine, Betriebssystem und Spracheinstellung ab. Er kann z. B.
(Central European Summer Time)oder(CEST)lauten oder ganz fehlen. Werten Sie ihn deshalb nicht maschinell aus. - Nicht lokalisiert: Die Ausgabe ist immer englisch geprägt und im 24-Stunden-Format. Für Nutzer-Oberflächen nehmen Sie
toLocaleTimeString('de-DE')oderIntl.DateTimeFormat. - Lokale Zeit, nicht UTC: Dieselbe Instanz ergibt je nach Systemzeitzone unterschiedliche Zeichenketten. Für stabile, maschinenlesbare Werte nehmen Sie
toISOString()(UTC). - Ungültige Daten werfen keinen Fehler, sondern ergeben
"Invalid Date". - Das Format ist erst seit ES2018 verbindlich festgelegt. Ältere Engines konnten leicht abweichende Ausgaben liefern. In allen aktuellen Browsern und in Node.js ist das Verhalten einheitlich.