Utilia

Prevodník Unix timestamp

Prevádzaj Unix timestamp v sekundách alebo milisekundách na čitateľný dátum v miestnom čase, UTC a ISO 8601 a ľubovoľný dátum zmeň späť na epoch čas.

Aktuálna časová pečiatka
–

Časová pečiatka → dátum

Miestny čas
–
UTC
–
ISO 8601
–

Dátum → časová pečiatka

Sekundy
–
Milisekundy
–

Ako používať prevodník Unix timestamp

  1. Ak chceš previesť časovú pečiatku na dátum, vlož hodnotu epoch, napríklad 1700000000 alebo 1700000000000. Nástroj podľa veľkosti čísla rozpozná, či je v sekundách, alebo v milisekundách.
  2. Výsledok si prečítaj v miestnom časovom pásme, v UTC a vo formáte ISO 8601.
  3. Opačným smerom zadaj dátum a čas; nástroj vráti zodpovedajúcu hodnotu epoch v sekundách aj milisekundách.
  4. Aktuálna časová pečiatka hore sa aktualizuje naživo, keď potrebuješ „teraz“ ako hodnotu epoch.

Funguje v tvojom prehliadači. Nič, čo zadáš, sa neodosiela na server.

Čo je Unix timestamp?

Unix timestamp, nazývaný aj epoch čas alebo čas POSIX, je počet sekúnd, ktoré uplynuli od Unix epochy: 1. januára 1970 o 00:00:00 UTC. Napríklad 1700000000 zodpovedá 14. novembru 2023 o 22:13:20 UTC. Dátumy pred rokom 1970 sa vyjadrujú zápornými číslami.

Časové pečiatky sú medzi vývojármi obľúbené, pretože ide o jedno číslo, ktoré nezávisí od časových pásiem, letného času ani formátov dátumu. Porovnanie dvoch okamihov je obyčajné odčítanie a zoradenie podľa času obyčajné číselné zoradenie. Nájdeš ich v databázach, súboroch protokolov, odpovediach API, tvrdeniach JWT ako exp a iat, metaúdajoch súborov a plánovačoch podobných cronu.

Pozor: čas Unix ignoruje priestupné sekundy, každý deň sa počíta presne ako 86 400 sekúnd. Aritmetika je tak jednoduchá, no časová pečiatka nie je presný počet každej fyzickej sekundy od roku 1970.

Sekundy alebo milisekundy

Najčastejším zdrojom zmätku je jednotka. Tradičné systémy Unix, PHP, time.time() v Pythone a väčšina databáz používajú sekundy, čo dnes dáva 10-miestne číslo. Date.now() v JavaScripte, System.currentTimeMillis() v Jave a mnohé API JSON používajú milisekundy, čo dáva 13-miestne číslo. Ak milisekundy vyložíš ako sekundy, skončíš desiatky tisíc rokov v budúcnosti; ak sekundy vyložíš ako milisekundy, skončíš v januári 1970. Tento nástroj podľa veľkosti čísla vyberie správnu jednotku automaticky a pri prevode dátumu zobrazí obe hodnoty, aby si mohol skopírovať tú, ktorú tvoj systém očakáva.

Miestny čas, UTC a ISO 8601

Časová pečiatka určuje jeden presný okamih, ale ten sa zobrazuje rôzne podľa časového pásma. Miestny výsledok používa časové pásmo nastavené na tvojom zariadení, kým UTC je univerzálna referencia, ktorú používajú servery a protokoly. ISO 8601, napríklad 2023-11-14T22:13:20.000Z, je jednoznačný textový formát odporúčaný na výmenu dátumov medzi systémami; koncové Z znamená UTC.

Problém roku 2038

Mnohé staršie systémy ukladajú čas Unix ako 32-bitové celé číslo so znamienkom, ktorého maximálna hodnota je 2 147 483 647. Tento limit sa dosiahne 19. januára 2038 o 03:14:07 UTC. O sekundu neskôr takýto čítač pretečie na veľké záporné číslo a číta sa ako dátum v decembri 1901. Moderné operačné systémy, databázy a jazyky už vo veľkej miere prešli na 64-bitové hodnoty času, ktoré posúvajú limit o miliardy rokov, ale vstavané zariadenia, staršie formáty súborov a staré stĺpce databáz môžu byť stále ovplyvnené. Samotný JavaScript ovplyvnený nie je, pretože ukladá čas ako milisekundy v 64-bitovom čísle s pohyblivou desatinnou čiarkou.

Súkromie

Všetky konverzie prebiehajú v tvojom prehliadači pomocou jeho vstavaných funkcií pre dátum. Žiadne časové pečiatky ani dátumy sa neodosielajú na server.

Často kladené otázky

Ako zistím, či je moja časová pečiatka v sekundách alebo milisekundách?

Spočítaj číslice. Súčasný dátum má v sekundách 10 číslic a v milisekundách 13 číslic. Nástroj uplatňuje rovnakú logiku automaticky podľa veľkosti čísla.

Prečo sa miestny čas líši od UTC?

Obe opisujú ten istý okamih. Miestny čas uplatňuje posun časového pásma tvojho zariadenia a pravidlá letného času, kým UTC nemá žiadny posun. Ak zdieľaš čas s ľuďmi inde, UTC alebo ISO 8601 predchádza nedorozumeniam.

Môže byť Unix timestamp záporný?

Áno. Záporné hodnoty predstavujú okamihy pred 1. januárom 1970 UTC. Napríklad -86400 je 31. december 1969 o 00:00:00 UTC.

Obsahuje Unix timestamp časové pásmo?

Nie. Časová pečiatka je vždy vzhľadom na UTC a nenesie žiadnu informáciu o časovom pásme. Pásmo záleží len vtedy, keď ju zobrazuješ ako kalendárny dátum a čas.

Pokazia sa moje systémy v roku 2038?

Len ak ukladajú čas v 32-bitovom celom čísle so znamienkom. Skontroluj staršie databázy, vstavaný firmvér a binárne formáty súborov. Všetko, čo používa 64-bitový čas, je v dohľadnej budúcnosti v bezpečí.