Okamih, hodiny a jednotka
Unix časová značka počíta sekundy od začiatku unixovej epochy 1970-01-01 00:00:00 UTC. Dátum a čas v štýle ISO pomenúva kalendárne polia a pri jednoznačnom okamihu obsahuje posun ako Z alebo +01:00. Samotný miestny údaj na hodinách bez zóny neurčuje jediný okamih. Skontrolujte aj jednotku: prehliadačové API a JavaScript Date často používajú milisekundy, teda pre rovnaký okamih tisíckrát väčšie číslo než Unix sekundy. Nástroj MultiVerto očakáva sekundy a povoľuje najviac tri desatinné miesta na milisekundy. Výsledok píše v UTC s príponou Z, takže použitý časový základ je jasný.
Nový rok na dvoch hodinách
Do vloženého prevodníka zadajte 1704067200. Zodpovedá času 2024-01-01T00:00:00.000Z. Ten istý okamih možno zapísať ako 2024-01-01T01:00:00+01:00: miestne hodiny sú o hodinu napred a po odpočítaní kladného posunu dostaneme polnoc UTC. Tento zápis s posunom vložte do prepojeného nástroja ISO na Unix; vráti 1704067200. Naproti tomu 2024-01-01T01:00:00Z označuje iný okamih, presne o hodinu neskôr. Samotné číslice dátumu bez prípony nestačia. Táto dvojica je užitočný opakovateľný test pre záznamy udalostí a API.
- Unix: 1704067200 sekúnd
- UTC: 2024-01-01T00:00:00.000Z
- Posun: 2024-01-01T01:00:00+01:00
Sekundy, milisekundy a zlomky
Ak rozhranie API vracia súčasnú hodnotu epochy s približne trinástimi číslicami, v dokumentácii overte, či ide o milisekundy; počet číslic sám o sebe neurčuje jednotku pre ľubovoľný dátum. Milisekundy na sekundy preveďte delením tisícom a zachovajte potrebný zlomok. Napríklad 1704067200500 milisekúnd zodpovedá 1704067200.5 sekundám a času 00:00:00.500Z v našom príklade. MultiVerto prijíma najviac tri číslice za desatinnou bodkou a vypisuje ISO s presnosťou na milisekundy. Pre mikrosekundy či nanosekundy najprv použite nástroj určený pre danú mierku. Priskoré zaokrúhlenie môže skryť poradie blízkych udalostí.
Posun nie je história pásma
Číselný posun určuje vzťah miestnych hodín a UTC v konkrétnom okamihu. Nepomenúva región a neobsahuje budúce pravidlá letného času. Opakované stretnutie o 09:00 v jednom meste potrebuje databázu časových pásiem, nie natrvalo uložené +01:00. Pri prevode ISO na Unix MultiVerto vyžaduje výslovný posun alebo Z, takže nemusí hádať nejednoznačný miestny čas. Prijímaný tvar má celý dátum, čas po sekundy a najviac tri desatinné miesta. Neplatné dátumy a priestupná sekunda s hodnotou 60 sa odmietnu. Ide o zámerne užšiu podporu než všetky možné zápisy času.
Spoľahlivá spätná kontrola
Zapíšte si hodnotu zo zdroja, či používa sekundy alebo milisekundy, a posun alebo pásmo uvedené tvorcom. Preveďte číslo na text ISO v UTC, potom presne ten text späť na číslo a porovnajte sekundy. Následne skúste druhý zápis s explicitným posunom pre rovnaký okamih. Rozdiel presne 3600 sekúnd naznačuje chybu o hodinu; násobok tisíc zámenu jednotiek. Uložený okamih nemeňte iba preto, aby zobrazené hodiny vyzerali ako vaše miestne hodiny. Uchovajte jednoznačný okamih a pre používateľa ho formátujte až pri zobrazení.
Ak porovnávate udalosti z viacerých systémov, zoraďujte jednoznačné okamihy, nie texty miestnych hodín. Dva rôzne posuny môžu pri rovnakom čase na ciferníku označovať odlišné okamihy. Naopak, rovnaká udalosť môže mať v dvoch krajinách rozdielny dátum. Pri analýze si nechajte pôvodný zápis aj normalizovaný čas UTC.