CommandDialog

Epoch-Konverter

Konvertieren Sie Unix-Zeitstempel (Sekunden seit dem 1. Januar 1970) in menschenlesbare Datumsangaben und umgekehrt, um zeitbasierte Berechnungen und Vergleiche zu vereinfachen.

Unix-Zeitstempel
Lokales Datum
RFC 3339
ISO 8601
ISO 9075
ISO 7231
UTC-Datum

Was ist Epoch oder Unix-Zeitstempel?

Der Unix-Zeitstempel, auch bekannt als Epoch-Zeit oder POSIX-Zeit, ist ein System zur Beschreibung eines Zeitpunkts als die Anzahl der Sekunden, die seit der Unix-Epoche (1. Januar 1970, 00:00:00 UTC) vergangen sind, ohne Schaltsekunden. Es dient als universeller Standard für die Zeitdarstellung in der Informatik und ermöglicht präzise zeitbasierte Berechnungen, Vergleiche und Synchronisation über Systeme und Anwendungen hinweg.

Unix-Zeitstempel werden weitläufig in Datenbanken, Protokollierungssystemen, APIs und verteilten Systemen verwendet, um Ereignisse zu verfolgen, Aufgaben zu planen und zeitkritische Operationen zu verwalten. Allerdings stellt die Unix-Zeit aufgrund des Ausschlusses von Schaltsekunden keine echte Darstellung der UTC dar. Viele ältere Systeme speichern die Unix-Zeit als vorzeichenbehaftete 32-Bit-Ganzzahl, die am 19. Januar 2038 um 03:14:08 UTC überlaufen wird, was zum Jahr-2038-Problem führt.

Was passiert am 19. Januar 2038?

Das Jahr-2038-Problem (Y2038, Epochalypse oder Unix Y2K) ist ein kritisches Problem für Systeme, die eine vorzeichenbehaftete 32-Bit-Ganzzahl zur Speicherung der Unix-Zeit verwenden. Diese Systeme können Zeiten nach dem 19. Januar 2038 um 03:14:07 UTC nicht darstellen, da der Maximalwert (2.147.483.647 Sekunden) überschritten wird. Bei einer Erhöhung wird der Zeitstempel überlaufen, zu einer negativen Zahl wechseln und dazu führen, dass Systeme ihn fälschlicherweise als den 13. Dezember 1901 interpretieren.

Dieser Ganzzahlüberlauf kann kritische Systeme in Bereichen wie Finanztransaktionen, Luftfahrt, Gesundheitswesen und Infrastruktur stören, in denen eine genaue Zeitmessung unerlässlich ist. Um dies zu mildern, wechseln moderne Systeme zu 64-Bit-Ganzzahlen, die Zeit für Milliarden von Jahren in die Zukunft darstellen können. Entwickler werden außerdem ermutigt, ältere Systeme zu aktualisieren und robuste Zeitverarbeitungsbibliotheken zu verwenden, um Y2038-bedingte Ausfälle zu verhindern.

Wie erhält man die aktuelle Epoch-Zeit in verschiedenen Programmiersprachen?

PHP

$epoch = time();

Javascript

var epoch = Math.floor(Date.now() / 1000);

Typescript

let epoch: number = Math.floor(Date.now() / 1000);

C++

#include <chrono>
auto epoch = std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count();

Java

long epoch = System.currentTimeMillis() / 1000;

Rust

use std::time::{SystemTime, UNIX_EPOCH};
let epoch = SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_secs();

Go

import "time"
epoch := time.Now().Unix()

Swift

import Foundation
let epoch = Int(Date().timeIntervalSince1970)

Bash Shell

epoch=$(date +%s)

C#

long epoch = DateTimeOffset.UtcNow.ToUnixTimeSeconds();

MySQL

SELECT UNIX_TIMESTAMP(NOW());

MATLAB

epoch = posixtime(datetime('now'));

VBA

Dim epoch As Long
epoch = DateDiff("s", "1/1/1970", Now())