Arbeiten mit Datum und Zeit in JavaScript (Node.js): Von den Grundlagen bis zu fortgeschrittenen Techniken
Das Arbeiten mit Datum und Zeit ist eine der häufigsten Aufgaben in der Backend-Entwicklung. Ob es um das Logging von Ereignissen, die Berechnung von Fristen, die Generierung von Berichten oder die Arbeit mit APIs geht – die Fähigkeit, Zeitstempel korrekt zu verarbeiten, ist eine kritisch wichtige Fähigkeit. In diesem Artikel behandeln wir alle wesentlichen Aspekte der Arbeit mit Daten in der Node.js-Umgebung: Vom integrierten Date-Objekt bis hin zu beliebten Bibliotheken, die das Leben des Entwicklers vereinfachen.
1. Das integrierte Date-Objekt: Grundlagen und Fallstricke
In JavaScript ist das integrierte Date-Objekt für die Arbeit mit Daten zuständig. Es bietet grundlegende Methoden zum Erstellen, Lesen und Manipulieren von Daten. Es hat jedoch eine Reihe von Besonderheiten, die man kennen sollte.
Erstellen eines Date-Objekts
Der einfachste Weg, das aktuelle Datum und die aktuelle Uhrzeit zu erhalten:
const now = new Date();console.log(now); // 2025-03-20T14:30:00.000Z (Beispiel)Man kann ein Datum aus einem String, einem Timestamp (Millisekunden seit dem 1. Januar 1970) oder durch manuelles Festlegen der Komponenten erstellen:
// Aus einem String (ISO 8601)const dateFromString = new Date("2025-12-25T10:00:00Z");
// Aus einem Timestampconst dateFromTimestamp = new Date(1735048800000);
// Aus Komponenten (Jahr, Monat (0-11), Tag, Stunde, Minute, Sekunde, Millisekunde)const dateFromParts = new Date(2025, 11, 25, 10, 0, 0, 0); // 25. Dezember 2025 10:00:00console.log(dateFromParts); // 2025-12-25T07:00:00.000Z (abhängig von der Zeitzone)Wichtig: Monate werden in JavaScript ab 0 gezählt (Januar = 0, Dezember = 11). Dies ist eine häufige Fehlerquelle.
Abrufen von Datumskomponenten
Das Date-Objekt stellt Methoden zum Abrufen einzelner Komponenten bereit:
const date = new Date();console.log(date.getFullYear()); // 2025console.log(date.getMonth()); // 2 (März, da Zählung bei 0 beginnt)console.log(date.getDate()); // 20console.log(date.getDay()); // 4 (Donnerstag, 0 = Sonntag)console.log(date.getHours()); // 17console.log(date.getMinutes()); // 45console.log(date.getSeconds()); // 12console.log(date.getMilliseconds());// 345console.log(date.getTime()); // 1742474712345 (Timestamp)Beachten Sie: Alle diese Methoden geben Werte in der lokalen Zeitzone des Servers zurück. Für die Arbeit mit UTC verwenden Sie Methoden mit dem Präfix getUTC... (z. B. getUTCFullYear()).
Manipulation von Daten
Die Änderung eines Datums erfolgt über set-Methoden. Sie mutieren das ursprüngliche Objekt:
const date = new Date();date.setFullYear(2026);date.setMonth(0); // Januardate.setDate(15);console.log(date); // 2026-01-15T... (die übrigen Komponenten bleiben erhalten)Fallstrick: set-Methoden korrigieren das Datum automatisch. Wenn man beispielsweise den 32. Januar setzt, wird das Datum zum 1. Februar. Dies kann sowohl praktisch als auch unerwartet sein.
2. Formatierung von Daten und Ausgabe im gewünschten Format
Die integrierte Methode toLocaleDateString() ermöglicht die Ausgabe eines Datums in dem für eine bestimmte Locale üblichen Format:
const date = new Date(2025, 11, 25);console.log(date.toLocaleDateString('ru-RU')); // 25.12.2025console.log(date.toLocaleDateString('en-US')); // 12/25/2025console.log(date.toLocaleDateString('de-DE')); // 25.12.2025Für eine flexiblere Formatierung kann man Intl.DateTimeFormat verwenden:
const formatter = new Intl.DateTimeFormat('de-DE', { year: 'numeric', month: 'long', day: 'numeric', weekday: 'long', hour: '2-digit', minute: '2-digit'});console.log(formatter.format(new Date())); // "Donnerstag, 20. März 2025, 17:45"Für komplexe Formate (z. B. "2025-03-20T14:30:00+03:00") oder benutzerdefinierte Vorlagen ist es jedoch besser, Bibliotheken zu verwenden (dazu weiter unten).
Blogs
Buchempfehlungen
Lesen Sie auch
Python Zertifikate: Welche sind sinnvoll?
Umrechnungen zwischen Zahlensystemen und Arbeiten mit Zahlen in Zeichenketten
Go-Entwickler: Gehalt, Perspektiven und Zukunft im Jahr 2024
Parallelität und Multithreading in TypeScript: Ein vollständiger Leitfaden
SQLite in Python: Praktische Tipps für Einsteiger
Blogs
Buchempfehlungen
Lesen Sie auch
Python Zertifikate: Welche sind sinnvoll?
Umrechnungen zwischen Zahlensystemen und Arbeiten mit Zahlen in Zeichenketten
SQLite in Python: Praktische Tipps für Einsteiger