Co je to Unix Timestamp (Epoch time)?
Unixový čas (zkráceně Timestamp nebo Epoch time) je systém pro popis konkrétního okamžiku v čase, který se masivně používá v operačních systémech (Linux, macOS), databázích a programovacích jazycích (PHP, JavaScript, Python).
Je definován jako počet sekund, které uplynuly od 1. ledna 1970 00:00:00 UTC (tento okamžik se nazývá Unix Epoch). Nezapočítávají se do něj přestupné sekundy.
Sekundy vs Milisekundy
Při programování můžete narazit na dva různé formáty zápisu:
- Sekundy (10 číslic): Standardní formát používaný systémem Unix a jazyky jako je PHP (funkce
time()). Hodnoty začínají číslem 1 (např. 1712930400). - Milisekundy (13 číslic): Formát, který nativně využívá JavaScript (funkce
Date.now()) a Java. Náš nástroj chytře detekuje délku zadaného čísla a pokud přesáhne 11 znaků, automaticky ho považuje za milisekundy.
Problém roku 2038 (Y2K38)
Podobně jako známý problém roku 2000 (Y2K), i unixový čas čelí svému limitu. Původně byl čas ukládán jako 32bitové celé číslo se znaménkem. Maximální hodnota takového čísla je 2 147 483 647.
Této hodnoty bude dosaženo 19. ledna 2038 v 03:14:07 UTC. Vteřinu poté čas pomyslně "přeteče" do záporných hodnot, což by způsobilo, že si staré 32bitové systémy budou myslet, že je rok 1901. Naštěstí většina moderních systémů dnes používá 64bitovou architekturu, která tento problém odsouvá na miliardy let do budoucnosti.