Prevodník času Epoch
Preveďte Unixové časové pečiatky na dátumy UTC alebo premeňte dátum na sekundy epoch.
Ako používať tento prevodník epoch času
- Vyberte režim prevodu
V poli Režim prevodu vyberte Epoch na dátum alebo Dátum na epoch.
- Pre epoch na dátum
Do poľa Epoch časová pečiatka (sekundy) zadajte Unix časovú pečiatku v sekundách.
- Pre dátum na epoch
Vyberte dátum v Kalendári, potom podľa potreby nastavte Hodinu (UTC), Minútu (UTC) a Sekundu (UTC).
- Prečítajte si výsledok
Kalkulačka zobrazuje hodnotu UTC, Unix milisekundy a deň v týždni.
Ako funguje tento prevodník času epoch
Tento prevodník času epoch prekladá medzi Unix časovými pečiatkami a ľudsky čitateľnými dátumami v UTC. Unixový čas — nazývaný aj POSIX čas alebo čas epoch — počíta počet sekúnd, ktoré uplynuli od Unix epochy, definovanej ako polnoc UTC 1. januára 1970 (1970-01-01T00:00:00Z). Táto reprezentácia pomocou jedného celého čísla je de-facto štandardom pre ukladanie a prenos časových pečiatok v databázach, API, logovacích súboroch, JWT tokenoch a prakticky v každom modernom programovacom jazyku. Prevodník funguje obojsmerne: zadanie číselnej časovej pečiatky vráti zodpovedajúci dátum UTC, deň v týždni a ekvivalent v milisekundách, zatiaľ čo zadanie kalendárneho dátumu a času vráti hodnotu epochy v sekundách a milisekundách.
Unixový čas = sekundy uplynuté od 1970-01-01T00:00:00Z Pre prevod Unix časovej pečiatky 1 700 000 000 na dátum: počnúc 1970-01-01 00:00:00 UTC, pripočítajte 1 700 000 000 sekúnd. To sa rovná 19 675 dňom, 17 hodinám, 46 minútam a 40 sekundám. Výsledný dátum v UTC je 14. novembra 2023 o 22:13:20 UTC, čo pripadá na utorok. Ekvivalent v milisekundách je 1 700 000 000 000. Naopak, zadanie 14. novembra 2023 o 22:13:20 UTC vráti hodnotu epoch presne 1 700 000 000.
Časová pečiatka 0 sa konvertuje na 1970-01-01 00:00:00 UTC (štvrtok). Ekvivalent v milisekundách je 0.
Časová pečiatka 1 704 000 000 sa konvertuje na 2023-12-31 12:00:00 UTC (nedeľa). Zadanie tohto dátumu a času v režime Dátum na epochu vráti 1 704 000 000.
- ✓ Všetky výpočty sú v UTC. Prevody na miestny čas vyžadujú po konverzii aplikovanie príslušného časového posunu.
- ✓ Prestupové sekundy sa nepočítajú. Podobne ako POSIX, tento prevodník považuje každý deň za presne 86 400 sekúnd, čo zodpovedá správaniu väčšiny programovacích jazykov a operačných systémov.
- ✓ Záporné časové údaje predstavujú dátumy pred epochou (1. január 1970). Napríklad −86400 zodpovedá 31. decembru 1969.
- ✓ Časové údaje v milisekundách by mali byť pred zadaním vydelené 1 000; prevodník prijíma sekundy ako vstup a vo výsledkoch zobrazuje ekvivalent v milisekundách.
- JavaScript Date.now() a Java System.currentTimeMillis() vracajú milisekundy, nie sekundy — pred zadaním hodnoty sem ju vydeľte 1 000, alebo použite milisekundový výstup na porovnanie.
- Problém roku 2038 ovplyvňuje 32-bitové časové pečiatky so znamienkom, ktoré pretečú 19. januára 2038 o 03:14:07 UTC. Väčšina moderných systémov už prešla na 64-bitové časové pečiatky.
- Pri ladení odpovedí API alebo logov si dávajte pozor na časové pečiatky posunuté presne o 3 600 alebo 7 200 sekúnd — to zvyčajne naznačuje, že v procese bol aplikovaný (alebo vynechaný) posun časového pásma.
- Čas Epoch je vždy monotónne rastúci (ignorujúc úpravy o priestupné sekundy), vďaka čomu je ideálny na triedenie udalostí, výpočet trvania a generovanie jedinečných identifikátorov založených na čase.
- IEEE Std 1003.1 (POSIX) — definícia sekúnd od začiatku Epochy
- Pôvod Unix epochy — dokumentácia The Unix Heritage Society a Bell Labs
- RFC 3339 — Dátum a čas na internete: Časové pečiatky
Čo sú Unix časové pečiatky?
Unix časová pečiatka je počet sekúnd, ktoré uplynuli od polnoci UTC 1. januára 1970 – Unix epochy. Toto jediné celé číslo je de-facto štandardom pre reprezentáciu času v databázach, API, log súboroch a väčšine programovacích jazykov. Keďže je nezávislé od časových pásiem a monotónne rastúce, zjednodušuje triedenie, výpočty trvania a porovnávanie času. JavaScript funkcia Date.now() a mnohé API vracajú milisekundy (1 000 × sekundy), preto pred zadaním hodnoty v milisekundách vydeľte číslo 1 000. Záporné časové pečiatky predstavujú dátumy pred rokom 1970; napríklad −86400 je presne jeden deň pred epochou.
Prípady použitia epoch času pre vývojárov
Vývojári používajú Unix časové pečiatky pri ukladaní časov udalostí do databáz, serializácii dátumov v JSON API, generovaní časových kľúčov vyrovnávacej pamäte a ladení záznamov v logoch. Databázové stĺpce často ukladajú časové pečiatky ako celé čísla pre efektívne indexovanie a dopyty na rozsahy. Odpovede API často vracajú epoch sekundy alebo milisekundy, aby sa predišlo nejednoznačnosti časových pásiem. Pri ladení konverzia surovej časovej pečiatky z logu alebo JWT claimu na ľudsky čitateľný dátum rýchlo odhalí, či je hodnota správna alebo posunutá o časové pásmo. Epoch čas sa používa aj na obmedzenie frekvencie požiadaviek (rate limiting), vypršanie relácií a generovanie triediteľných jedinečných identifikátorov v distribuovaných systémoch.
Často kladené otázky o prevodníku času Epoch
Čo je Unixová epocha?
Unixová epocha je referenčný bod, od ktorého sa meria unixový čas: polnoc UTC 1. januára 1970 (1970-01-01T00:00:00Z). Časová pečiatka 0 zodpovedá presne tomuto momentu.
Prečo má moja JavaScript časová pečiatka viac číslic?
JavaScript's Date.now() vracia milisekundy od epochy, nie sekundy. Vydeľte hodnotu 1 000 pre prevod na formát v sekundách používaný týmto nástrojom, alebo ju porovnajte priamo s výstupom v milisekundách.
Môžem zadať zápornú časovú pečiatku?
Áno. Záporné hodnoty predstavujú dátumy pred epochou. Napríklad −86400 zodpovedá 1969-12-31T00:00:00Z, čo je presne jeden deň pred epochou.
Spracováva tento nástroj priestupné sekundy?
Nie, a to je v súlade so štandardom POSIX. Čas POSIX predpokladá, že každý deň má presne 86 400 sekúnd. 27 priestupných sekúnd vložených od roku 1972 nie je individuálne vyjadrených, čo znamená, že UTC a Unixový čas sa môžu v momentoch vloženia priestupnej sekundy líšiť až o jednu sekundu.
Čo je problém roku 2038?
Systémy ukladajúce Unixový čas ako 32-bitové celé číslo so znamienkom pretečú 19. januára 2038 o 03:14:07 UTC, čím sa zmenia na veľké záporné číslo a vygenerujú dátumy v roku 1901. Väčšina moderných platforiem dnes používa 64-bitové časové pečiatky, ktoré nepretečú viac ako 290 miliárd rokov.