Jak nástroj použít
- 1Aktuální unixový čas běží v horní části nástroje. Kliknutím na Kopírovat si ho vezmete v sekundách nebo milisekundách.
- 2Vložte timestamp do části „Timestamp na datum“. Jednotka se rozpozná podle počtu číslic; pokud odhad nesedí, zvolte sekundy, milisekundy, mikrosekundy nebo nanosekundy sami.
- 3Můžete vložit i datum, například
2024-05-01T12:00:00ZneboWed, 01 May 2024 12:00:00 GMT, a uvidíte ho ve všech formátech i jako timestamp. - 4Pro opačný převod vyberte datum a čas v části „Datum na timestamp“, zvolte místní čas nebo UTC a výsledek zkopírujte.
Co je unixový čas?
Unixový čas – nazývaný také epoch time nebo POSIX timestamp – počítá sekundy od 1. ledna 1970 00:00:00 UTC, tedy od takzvané unixové epochy. Hranici 1 700 000 000 překročil 14. listopadu 2023 ve 22:13:20 UTC. Okamžiky před rokem 1970 jsou záporná čísla.
Timestamp je jediné číslo bez časových pásem, kalendářů a formátů data, takže se snadno ukládá, řadí i porovnává. Proto ho všude používají databáze, API, logy, souborové systémy i JSON Web Tokeny.
Sekundy, milisekundy, mikrosekundy, nebo nanosekundy?
Klasický unixový čas počítá sekundy a dnešní hodnoty mají 10 číslic. Date.now() v JavaScriptu a System.currentTimeMillis() v Javě vracejí milisekundy (13 číslic), některé databáze ukládají mikrosekundy (16 číslic) a UnixNano() v Go a time.time_ns() v Pythonu vracejí nanosekundy (19 číslic).
Převodník odhaduje jednotku podle délky čísla: do 11 číslic předpokládá sekundy, při 12–14 číslicích milisekundy, při 15–17 mikrosekundy a od 18 číslic nanosekundy. Nejednoznačné jsou jen velmi malé hodnoty v milisekundách z doby před březnem 1973 – u nich zvolte jednotku sami.
Časová pásma, rok 2038 a přestupné sekundy
Timestamp označuje stejný okamžik všude na Zemi; na časovém pásmu závisí jen jeho zobrazení. 1 700 000 000 je v Londýně 22:13:20, v Praze 23:13:20 a v New Yorku 17:13:20. Ukládejte a předávejte UTC a na místní čas převádějte až při zobrazení lidem.
Systémům, které unixový čas ukládají do 32bitového celého čísla se znaménkem, dojde místo 19. ledna 2038 ve 03:14:07 UTC, kdy čítač přeteče a skočí zpět do roku 1901 – to je problém roku 2038. Současné systémy používají 64 bitů, které vydrží miliardy let.
Unixový čas přestupné sekundy ignoruje: každý den má přesně 86 400 sekund. Když se k UTC přidá přestupná sekunda, unixové hodiny jednu sekundu zopakují nebo ji rozloží, takže rozdíl dvou timestampů může být o přestupné sekundy mezi nimi kratší – od roku 1972 jich bylo 27.
Otázky a odpovědi
Jak zjistím aktuální Unix timestamp?
Najdete ho v horní části této stránky. V kódu použijte Math.floor(Date.now() / 1000) v JavaScriptu, time.time() v Pythonu, time() v PHP, DateTimeOffset.UtcNow.ToUnixTimeSeconds() v C# nebo date +%s v terminálu Linuxu či macOS.
Je Unix timestamp v sekundách, nebo v milisekundách?
Tradičně v sekundách, ale mnoho platforem včetně JavaScriptu a Javy používá milisekundy. Spočítejte číslice: aktuální timestamp má v sekundách 10 číslic a v milisekundách 13. Tento převodník jednotku rozpozná a řekne vám, kterou předpokládal.
Závisí unixový čas na časovém pásmu?
Ne. Vždy se počítá od půlnoci UTC 1. ledna 1970, takže ve stejném okamžiku je to všude stejné číslo. Časové pásmo hraje roli, až když číslo převádíte na kalendářní datum a čas.
Co se stane s unixovým časem v roce 2038?
19. ledna 2038 ve 03:14:07 UTC překročí unixový čas hodnotu 2 147 483 647 – největší, jakou pojme 32bitové celé číslo se znaménkem. Software, který čas stále ukládá ve 32 bitech, přeskočí na prosinec 1901. Moderní operační systémy, databáze a jazyky používají 64bitový čas a problém se jich netýká.
Jak převedu Unix timestamp v Excelu nebo Tabulkách Google?
Pro sekundy použijte =A1/86400+DATE(1970,1,1) – v české verzi Excelu =A1/86400+DATUM(1970;1;1) – a buňku naformátujte jako datum a čas; pro milisekundy dělte místo toho číslem 86 400 000. Výsledek je v UTC, takže přičtěte nebo odečtěte svůj posun od UTC v hodinách vydělený 24.