Převeď unixové časové razítko na datum i zpět

Poslední revize obsahu:

Desetimístné číslo v logu nebo v JWT a nikdo neví, kdy se to stalo? Vlož ho sem: čitelné datum je hned na místě, v UTC, bez instalace a bez registrace.

s
na

Co je unixové časové razítko?

Unixové časové razítko, také epoch, počítá sekundy od 1. ledna 1970 00:00:00 UTC. Takhle stroje ukládají datum jako jediné celé číslo.

Hodnota 1 700 000 000 odpovídá 14. listopadu 2023, 22:13:20 UTC. Dnešní razítko se pohybuje kolem 1,79 miliardy a každou sekundu roste o jedničku.

Najdeš ho v databázích, v API, v logách serverů i v tokenech JWT. Nezávisí na žádném časovém pásmu: stejné číslo znamená stejný okamžik po celém světě.

Odtud plyne problém roku 2038: razítko uložené na 32 bitech se znaménkem dosáhne nejvyšší hodnoty 19. ledna 2038. Dnešní systémy ho ukládají na 64 bitech.

Jak převod funguje?

Převod znamená spočítat, kolik dní, hodin, minut a sekund se vejde do počtu sekund uplynulých od epochy. Výsledek je v UTC, ve stejné soustavě jako samo razítko.

Pro český čas přičti v zimě hodinu a v létě dvě: Česko je na UTC+1 se standardním časem a na UTC+2 s letním. V JavaScriptu to za tebe udělá Intl.DateTimeFormat s timeZone: "Europe/Prague".

Pozor na jednotku: JavaScript počítá milisekundy, ne sekundy. Date.now() proto vrací tisíckrát větší číslo než unixové razítko a je potřeba ho vydělit tisícem.

Unixové razítko a čitelné datum vedle sebe

Unixové razítkoDatum a čas
FormátCelé čísloRRRR-MM-DD HH:MM:SS
Časové pásmoVždy UTCZávisí na místě
Rozsah na 32 bitech0 – 2 147 483 6471970–2038
Rozsah na 64 bitechPrakticky neomezenýMiliardy let
ŘazeníPřirozené, jsou to číslaVyžaduje rozbor textu

Jak převodník použít?

  1. 1. Zadej hodnotu

    Zadej časové razítko v sekundách. Převodník zahodí desetinnou část, milisekundy proto nejdřív vyděl 1000.
  2. 2. Přečti výsledek

    Datum se objeví hned ve vedlejším poli, v UTC a ve tvaru 2023-11-14 22:13:20 — bez klikání na cokoli.
  3. 3. Zkopíruj nebo obrať směr

    Klikni na Kopírovat výsledek nebo na tlačítko Prohodit pořadí, zadej datum a získáš jeho časové razítko.

K čemu se převodník hodí?

  1. Databáze a sloupce s datem

    Sloupce created_at, updated_at a deleted_at často drží razítko místo čitelného data, ať už jde o PostgreSQL, MySQL nebo SQLite. Při ladění migrace v Symfony nebo Laravelu vrátí převodník řádku smysl bez jediného dotazu.
  2. API a tokeny JWT

    Token JWT nese pole exp a iat, tedy platnost a čas vydání, obojí jako unixové razítko. Převodník během vteřiny řekne, jestli token ještě platí a kdy přesně byl vydán.
  3. Logy serverů a úlohy cron

    Apache, Nginx i syslog datují každý řádek. Úloha cron na serveru běží skoro vždy v UTC: převodník dá hodinu UTC, kdy chyba nastala, a k ní stačí přičíst český posun.
  4. Ladění a objekty Date v JavaScriptu

    Date.now() vrací milisekundy, v září 2026 zhruba 1 788 000 000 000. Vydělit tisícem a zaokrouhlit dolů dá unixové razítko. Převodník pak slouží k porovnání hodnot z různých zdrojů a k odhalení rozjetých hodin.

Hodnoty, které je dobré mít po ruce

  • Unixová epocha začíná 1. ledna 1970 v 00:00:00 UTC: to je razítko 0.
  • Hranice 32 bitů, 2 147 483 647, padne 19. ledna 2038 v 03:14:07 UTC.
  • V JavaScriptu vrací Date.now() milisekundy, ne sekundy.
  • Záporné razítko znamená datum před rokem 1970: -1 je 31. prosince 1969 v 23:59:59 UTC.

Poslední revize obsahu: · napsal a zkontroloval tým Arteon

Časté dotazy

Co je Unix epocha?

1. leden 1970 00:00:00 UTC. Všechny timestampy se měří od tohoto bodu.

Co je problém roku 2038?

32-bit timestampy přetečou 19. ledna 2038. Moderní systémy používají 64 bitů.

Probíhají výpočty lokálně?

Ano. Veškeré výpočty probíhají ve vašem prohlížeči.

Jaké je aktuální unixové časové razítko?

V září 2026 se pohybuje kolem 1 788 000 000 a každou sekundu roste o jedničku. Přesnou hodnotu získáš tak, že do převodníku zadáš dnešní datum, nebo spustíš Math.floor(Date.now() / 1000) v konzoli prohlížeče.

Jak se z výsledku dostanu k českému času?

Převodník ukazuje UTC. Česko je v zimě na UTC+1 a v létě na UTC+2, takže se přičítá jedna nebo dvě hodiny. V JavaScriptu posun udělá sám Intl.DateTimeFormat s timeZone: "Europe/Prague".

Jaký je rozdíl mezi unixovým a javascriptovým razítkem?

Unixové razítko počítá sekundy, JavaScript milisekundy. Proto se z 1700000000 stane v JavaScriptu 1700000000000. Vydělením tisícem a použitím Math.floor se dostaneš zpátky.

Jak získám razítko v JavaScriptu, PHP nebo SQL?

V JavaScriptu Math.floor(Date.now() / 1000), v PHP time(), v Pythonu int(time.time()). V SQL dají stejnou hodnotu UNIX_TIMESTAMP() v MySQL a EXTRACT(EPOCH FROM NOW()) v PostgreSQL.

Může být razítko záporné?

Může. Záporné hodnoty znamenají data před 1. lednem 1970: -86400 je 31. prosince 1969 v 00:00:00 UTC. Většina jazyků i databází si s nimi poradí.

Snímek obrazovky bezplatného nástroje Arteon: Převeď unixové časové razítko na datum i zpět

Pomozte nám vylepšit naše nástroje

Máte nápad, našli jste chybu nebo chcete navrhnout funkci? Napište nám – odpovídme do 24 hodin.