Čo je tento nástroj?
Unix časová pečiatka (nazývaná aj epoch time) je počet sekúnd uplynutých od 1. januára 1970, 00:00:00 UTC. Je to štandardný spôsob, akým počítače ukladajú okamihy v čase: databázy, log súbory, API a programovacie jazyky ju všetky používajú, pretože je to jedno jednoznačné číslo bez zmätkov s časovými pásmami.
Existujú dve varianty: sekundy (dnes 10 číslic, napr. 1720500000) a milisekundy (13 číslic, používané JavaScriptom a Javou). Tento nástroj automaticky rozpozná, ktorú z nich ste vložili.
Prečo ho používať?
- Okamžite čítajte časové pečiatky z logov, riadkov databázy a odpovedí API.
- Automaticky rozpozná sekundy vs. milisekundy — žiadne hádanie.
- Zobrazuje miestny čas, UTC, ISO 8601 a relatívny čas („pred 3 hodinami“) spolu.
- Konvertuje oboma smermi: časová pečiatka → dátum a dátum → časová pečiatka.
- Živé hodiny s aktuálnym epoch časom pre rýchlu referenciu.
Ako sa používa
- Na dekódovanie: vložte časovú pečiatku (ako 1720500000) do ľavého poľa a kliknite na „Convert“.
- Prečítajte si výsledok vo vašom miestnom časovom pásme, UTC, ISO 8601 a ako relatívny čas.
- Na kódovanie: vyberte dátum a čas v pravom poli a kliknite na „Convert“ pre získanie jeho časovej pečiatky v sekundách a milisekundách.
- Použite živé hodiny v hornej časti, keď potrebujete len aktuálnu časovú pečiatku.
Príklad
Vstup
1720500000Výstup
Local time: 7/9/2024, 1:20:00 PM
UTC time: Tue, 09 Jul 2024 05:20:00 GMT
ISO 8601: 2024-07-09T05:20:00.000Z10-ciferná hodnota sa spracuje ako sekundy; 13-ciferná hodnota ako milisekundy.
Praktické tipy
- Ladenie chýb „nesprávny čas“: 90 % z nich sú problémy so zobrazením časového pásma, nie nesprávne časové pečiatky. Porovnajte riadok UTC s vašimi serverovými logmi (servery zvyčajne logujú v UTC) predtým, než sa dotknete akéhokoľvek kódu.
- Dátum, ktorý pripadne presne na 1970-01-01, znamená, že časová pečiatka bola 0 alebo chýbala — klasický príznak nulovej hodnoty, nie skutočný dátum.
- Dátum okolo roku 1970 plus pár dní zvyčajne znamená, že sekundy boli niekde interpretované ako milisekundy; dátum v roku 56 000+ znamená opačný prípad.
- V tabuľkách: Excel počíta dni od roku 1900, nie sekundy od roku 1970. Konvertujte pomocou =(A1/86400)+DATE(1970,1,1) pre časovú pečiatku v sekundách.
Reálne scenáre použitia
Kde časové pečiatky v praxi spôsobujú problémy: čítanie polí platnosti v JWT a API tokenoch (exp/iat sú Unix sekundy), spájanie času hlásenia chyby používateľom s riadkami serverových logov, nastavovanie TTL cache a cron okien, a kontrola, či certifikát alebo token skutočne vypršal. Riadok relatívneho času („pred 3 hodinami“) je najrýchlejšia kontrola zdravého rozumu pre všetky tieto prípady.
Ladenie JWT je dostatočne časté na to, aby sme to rozobrali: dekódujte payload tokenu pomocou nástroja Base64, potom sem vložte hodnotu exp — okamžitá odpoveď na otázku „je tento token vypršaný a o koľko“.
Prečo bol Unix time navrhnutý takto
Ukladanie jedného rastúceho čísla od pevného epoch (namiesto štruktúry rok/mesiac/deň/hodina) bol zámerný kompromis jednoduchosti: dve časové pečiatky sa dajú porovnať alebo od seba odpočítať obyčajnou aritmetikou, bez potreby kalendárnej logiky, čo je dôvod, prečo sú na ňom postavené databázy, formáty logov a prakticky každá interná reprezentácia dátumu v programovacích jazykoch. Cena tejto jednoduchosti je presne to, na čo tento nástroj existuje, aby to vyhladil — ľudia nerozmýšľajú v sekundách od roku 1970, takže každú časovú pečiatku treba preložiť späť na kalendárny dátum, aby mala pre človeka, ktorý ju číta, nejaký zmysel, a tento preklad musí naraz zohľadniť časové pásmo, presnosť (sekundy vs. milisekundy) a formát zobrazenia.
Časté otázky
Ako nástroj vie, či je moja časová pečiatka v sekundách alebo milisekundách?
Podľa veľkosti. Hodnoty 1 000 000 000 000 (1e12) alebo väčšie sa spracujú ako milisekundy; menšie hodnoty ako sekundy. Aktuálne dátumy predstavujú približne 1,7 miliardy v sekundách a približne 1 700 miliárd v milisekundách, takže sa tieto dva rozsahy pri reálnych dátumoch neprekrývajú.
Prečo moja časová pečiatka zobrazuje inú hodinu, než očakávam?
Časové pásma. Časová pečiatka je vždy založená na UTC; riadok „local time“ ju konvertuje na časové pásmo vášho zariadenia. Porovnajte riadok UTC s tým, čo zaznamenáva váš zdrojový systém — mnoho serverov loguje v UTC.
Čo je problém roku 2038?
Systémy ukladajúce časové pečiatky ako podpísané 32-bitové celé čísla pretečú 19. januára 2038. Moderné systémy používajú 64-bitové celé čísla a nie sú ovplyvnené. Tento nástroj používa čísla JavaScriptu, ktoré zvládajú dátumy ďaleko za rok 2038.
Môžem konvertovať záporné časové pečiatky?
Áno. Záporné časové pečiatky predstavujú dátumy pred 1. januárom 1970 — napríklad -86400 je 31. december 1969.
Zahŕňa epoch aj prestupné sekundy?
Nie. Unix time predstiera, že každý deň má presne 86 400 sekúnd, a ignoruje prestupné sekundy — zámerné zjednodušenie, ktoré udržiava aritmetiku jednoduchou.