Wie Sie zwischen Zeitformaten konvertieren

· 9 Min. Lesezeit

Zeitformate unterscheiden sich zwischen Systemen, APIs und Ländern. Unix-Timestamps in API-Antworten, ISO 8601 in Datenbanken, 12-Stunden-Uhren in den USA, 24-Stunden-Uhren in Europa: Zwischen ihnen umzurechnen ist für Entwickler und alle, die mit internationalen Daten arbeiten, ein ständiger Bedarf. Zu verstehen, warum jedes Format existiert, wo es glänzt und wo es beißt, macht die Umrechnung zu einem schnellen Reflex statt zu einer wiederkehrenden Quelle subtiler Bugs.

Eine kurze Geschichte der Zeitformate

Zeit zu standardisieren ist älter als das Internet. 1884 legte die Internationale Meridiankonferenz die Greenwich Mean Time und den Nullmeridian fest, was der Welt zum ersten Mal eine gemeinsame Referenz gab. Die 24-Stunden-Uhr verbreitete sich aus demselben Grund in Luftfahrt und Militär: Sie beseitigt die AM/PM-Mehrdeutigkeit, die eine Mitternachts-Buchung in einen Mittagsflug verwandelt.

Unix-Zeit kam mit dem ursprünglichen Unix-Kernel 1971 und zählt Sekunden seit dem 1. Januar 1970 UTC (der «Epoche»). Die Wahl war pragmatisch: Ein 32-Bit-Integer konnte Jahrzehnte abdecken, das Sortieren von Timestamps war das Sortieren von Zahlen, und das Berechnen von Intervallen war eine Subtraktion. ISO 8601 kam 1988, um die menschenlesbare Seite zu standardisieren: Jahr-Monat-Tag in Big-Endian-Reihenfolge, T als Datum/Zeit-Trenner und Z für UTC. RFC 3339 (2002) ist ein engeres Profil von ISO 8601, das für Internet-Protokolle ausgelegt ist. RFC 2822 (2001) definiert das E-Mail-Format mit Tagesnamen und Offsets. Jedes Format löst ein echtes Problem; keines ersetzt die anderen vollständig.

Gängige Zeitformate

Sechs Formate decken fast alles ab, was Ihnen in der Praxis begegnet. Die erste Spalte ist der Name, den Sie in der Dokumentation sehen; die Beispielspalte zeigt, wie 14:30 Uhr am 7. April 2024 UTC aussieht.

FormatBeispielVerwendet von
Unix-Timestamp (Sekunden)1712502600APIs, Datenbanken, JWT-Tokens, Logzeilen
Unix-Timestamp (ms)1712502600000JavaScript, Java, Android
Unix-Timestamp (Mikrosekunden)1712502600000000Postgres, Kafka, OpenTelemetry
ISO 8601 / RFC 33392024-04-07T14:30:00ZJSON-APIs, Datenbanken, Logs
RFC 2822Sun, 07 Apr 2024 14:30:00 +0000E-Mail-Header, HTTP-Header
24-Stunden14:30Europa, Militär, Luftfahrt
12-Stunden2:30 PMUSA, informeller Gebrauch
Tag des Jahres (Julian)2024-098Avionik, wissenschaftliche Daten
Wochendatum2024-W14-7Industrielle Planung, Banken

Die meisten Teams einigen sich auf Unix-Millisekunden für Speicherung und ISO 8601 für Übertragung, mit Anzeigeformaten pro Locale. Die Wahl zählt weniger als Konsistenz: Wählen Sie ein Hauptformat, dokumentieren Sie es und konvertieren Sie an den Rändern.

Schnelle Umrechnungsreferenz

12 Stunden zu 24 Stunden

Die 12-Stunden-Uhr hat zwei Eigenheiten: 12 AM ist Mitternacht (der Tagesanfang) und 12 PM ist Mittag. Die Tabelle unten deckt die Fälle ab, die Leuten Probleme machen.

12-Stunden24-Stunden
12:00 AM (Mitternacht)00:00
1:00 AM01:00
11:59 AM11:59
12:00 PM (Mittag)12:00
12:01 PM12:01
1:00 PM13:00
6:00 PM18:00
11:59 PM23:59

Timestamps zu Daten

Der Epoch-Konverter übersetzt Unix-Timestamps sofort in lesbare Daten und zurück. Der Konverter erkennt automatisch sowohl Sekunden- (10 Stellen) als auch Millisekunden-Formate (13 Stellen), sodass Sie einen Wert aus jeder Quelle einfügen können, ohne sich um die Einheit zu sorgen.

Ein nützlicher Plausibilitäts-Check: Teilen Sie durch 86400 (Sekunden pro Tag) und addieren Sie 1970 Tage, um jeden Timestamp im Kopf zu verorten. 1712502600 / 86400 ~ 19820 Tage, also etwa 54 Jahre nach 1970, was ihn in 2024 setzt. Nicht präzise, aber genug, um 1000er-Faktor-Fehler auf einen Blick zu erkennen.

Umrechnungsbeispiele in Code

Die meisten Entwickler müssen Timestamps irgendwann im Code umrechnen. Die Kern-APIs sind kurz:

Ein Konverter-Tool ist schneller als jeder dieser Einzeiler, wenn Sie nur einen einzelnen Wert übersetzen müssen, was beim Debuggen meist der Fall ist.

Warum ISO 8601 für Speicherung gewinnt

ISO 8601 (und das RFC-3339-Profil davon) sortiert korrekt als reine Zeichenkette. 2024-04-07T14:30:00Z kommt alphabetisch vor 2024-04-07T15:00:00Z, das vor 2024-04-08T00:00:00Z kommt. Diese Eigenschaft erlaubt es Ihnen, Timestamps ohne Parsen zu sortieren, Logzeilen mit sort | uniq -c zu gruppieren und über Bereiche mit einfachen String-Vergleichen zu räsonieren.

Es ist auch eindeutig auf eine Weise, die die regionalen Formate nicht sind. 04/07/2024 könnte der 7. April (USA) oder der 4. Juli (großer Teil Europas) sein; 2024-04-07 ist in jeder Locale dasselbe. Für Maschine-zu-Maschine-Austausch ist diese Eindeutigkeit mehr wert als jede andere Formatierungs-Überlegung.

Häufige Fallstricke, die zu vermeiden sind

Alternative Werkzeuge und Bibliotheken

Ein Konverter erledigt den Einzelfall; für Produktionscode greifen Sie zu einer Bibliothek.

Werkzeug / BibliothekSpracheStärkeAchten Sie auf
Web-KonverterBrowserSofort, ohne Installation, behandelt gängige MehrdeutigkeitenEin Wert auf einmal
dateutilPythonToleranter Parser, zeitzonenbewusstLangsamer als datetime für Massenarbeit
arrowPythonFreundliche API, ISO-DefaultsZusätzliche Abhängigkeit für kleine Projekte
date-fnsJavaScriptTree-shakable, unveränderlichJede Funktion ist ihr eigener Import
dayjsJavaScriptKlein, moment-kompatible APIPlugin-Modell für Extras
luxonJavaScriptErstklassige IANA-ZeitzonenGrößeres Bundle
chronoRustReiche Typen, RFC 3339 nativWartungsgeschwindigkeit variiert
Joda-Time / java.timeJavaDas Referenzdesign, das andere beeinflussteVermeiden Sie das Legacy-Date und Calendar
NodaTimeC#/.NETSauber getrennte Instants, Dauern, KalenderMigration von DateTime ist nicht trivial
GNU dateLinux-ShellFlexibles Parsen mit -dBSD/macOS nutzt inkompatible Flags

Die richtige Bibliothek hängt von Ihrem Stack ab; die richtige Disziplin ist überall gleich: UTC speichern, ISO 8601 übertragen, nur zur Anzeige formatieren und nie einem Timestamp ohne explizite Zone trauen.

Datenschutz und der Konverter

Der Zeitformat-Konverter läuft vollständig in Ihrem Browser. Die Timestamps, die Sie einfügen, und die Daten, die Sie erzeugen, verlassen die Seite nie. Es gibt kein Server-Log, welche Werte umgerechnet wurden, keine Analytik dazu, welche Formate populär sind, und keine Möglichkeit für irgendjemanden, eine Anfrage mit Ihrer IP zu verknüpfen. Zeitumrechnungen sind an sich keine persönlichen Daten, aber die Timestamps in Ihren Logs (Login-Zeiten, Transaktionszeiten, Scheduling-Fenster) sind es oft, und sie durch einen Drittanbieter-Konverter zu schicken könnte operative Details verraten. Die Arbeit clientseitig zu erledigen, hält diese Information auf Ihrer Maschine, wo sie hingehört. Für eine Aufgabe, die so routiniert ist wie das Umschalten zwischen Sekunden und ISO 8601, sollte die Datenschutz-Voreinstellung sein: keine Übertragung, kein Logging, kein Dritter in der Schleife.

Häufig gestellte Fragen

Was ist das ISO-8601-Format?

ISO 8601 ist der internationale Standard zur Darstellung von Datum und Uhrzeit. Es sieht aus wie 2026-04-07T14:30:00Z, wobei T Datum und Uhrzeit trennt und Z UTC angibt. Es ist unabhängig von der Lokalisierung eindeutig.

Warum verwenden APIs Unix-Timestamps statt lesbarer Daten?

Unix-Timestamps sind eine einzelne Zahl und damit leicht zu speichern, sortieren und vergleichen. Sie sind zeitzonen-neutral (immer UTC) und benötigen weniger Platz als formatierte Datums-Zeichenketten. Der Kompromiss: Sie sind nicht menschenlesbar.

Was bedeutet das Z am Ende eines Zeitstempels?

Das Z steht für „Zulu time", einen anderen Namen für UTC (Coordinated Universal Time). Ein Timestamp, der mit Z endet, ist in UTC, nicht in Ortszeit.

Wie konvertiere ich 24-Stunden- in 12-Stunden-Zeit?

Für die Stunden 1-12 bleibt die Zeit gleich (AM für 0-11, PM für 12 hinzufügen). Für die Stunden 13-23 ziehen Sie 12 ab und fügen PM hinzu. 00:00 ist 12:00 AM (Mitternacht). 12:00 ist 12:00 PM (Mittag).

What is the Year 2038 problem?

32-bit signed Unix timestamps overflow on 19 January 2038 at 03:14:07 UTC, after which they wrap around to negative values that look like dates in 1901. Most modern systems use 64-bit timestamps and are unaffected, but legacy embedded devices, old databases, and 32-bit time_t in some C code still need to be audited.

How are leap seconds handled in Unix time?

Unix time pretends leap seconds do not exist. The clock simply repeats or stretches the affected second, so a Unix timestamp is not a strict count of elapsed SI seconds. For most applications this is fine, but precision-timing code (astronomy, GPS, high-frequency trading) needs TAI or UTC with explicit leap-second handling.