Utilia

Pretvarač Unix vremenske oznake

Pretvori Unix vremenske oznake u sekundama ili milisekundama u čitljive datume u lokalnom vremenu, UTC-u i ISO 8601, a svaki datum vrati u epoch vrijeme.

Trenutačna vremenska oznaka
–

Vremenska oznaka → datum

Lokalno vrijeme
–
UTC
–
ISO 8601
–

Datum → vremenska oznaka

Sekunde
–
Milisekunde
–

Kako koristiti pretvarač Unix vremenske oznake

  1. Za pretvorbu vremenske oznake u datum zalijepi epoch vrijednost poput 1700000000 ili 1700000000000. Alat po veličini broja prepoznaje je li u sekundama ili milisekundama.
  2. Pročitaj rezultat u svojoj Lokalno vrijeme zoni, u UTC i u formatu ISO 8601.
  3. Za obrnuti smjer unesi datum i vrijeme; alat vraća odgovarajuću epoch vrijednost i u Sekunde i u Milisekunde.
  4. Pogledaj Trenutačna vremenska oznaka pri vrhu, koja se ažurira uživo, kad god ti treba „sada“ kao epoch vrijednost.

Što je Unix vremenska oznaka?

Unix vremenska oznaka (timestamp), zvana i epoch vrijeme ili POSIX vrijeme, broj je sekundi proteklih od Unix epohe: 1. siječnja 1970. u 00:00:00 UTC. Na primjer, 1700000000 odgovara 14. studenome 2023. u 22:13:20 UTC. Datumi prije 1970. prikazuju se negativnim brojevima.

Vremenske oznake omiljene su među programerima jer su jedan broj koji ne ovisi o vremenskim zonama, ljetnom računanju vremena ni formatima datuma. Usporedba dvaju trenutaka je jednostavno oduzimanje, a sortiranje po vremenu jednostavno numeričko sortiranje. Naći ćeš ih u bazama podataka, datotekama dnevnika, odgovorima API-ja, JWT tvrdnjama poput exp i iat, metapodacima datoteka i planerima nalik cronu.

Imaj na umu da Unix vrijeme ignorira prijestupne sekunde: svaki dan broji točno 86 400 sekundi. To održava aritmetiku jednostavnom i zato vremenska oznaka nije strogo brojanje svake fizičke sekunde od 1970.

Sekunde ili milisekunde

Najčešći izvor zabune je jedinica. Tradicionalni Unix sustavi, PHP, Pythonov time.time() i većina baza podataka koriste sekunde, što danas daje 10-znamenkasti broj. JavaScriptov Date.now(), Javin System.currentTimeMillis() i mnogi JSON API-ji koriste milisekunde, što daje 13-znamenkasti broj. Ako milisekunde protumačiš kao sekunde, završiš desetke tisuća godina u budućnosti; ako sekunde protumačiš kao milisekunde, završiš u siječnju 1970. Alat gleda veličinu broja da automatski odabere pravu jedinicu, a pri pretvorbi datuma prikazuje obje vrijednosti da kopiraš onu koju tvoj sustav očekuje.

Lokalno vrijeme, UTC i ISO 8601

Vremenska oznaka određuje jedan točan trenutak, ali se taj trenutak prikazuje različito ovisno o vremenskoj zoni. Lokalni rezultat koristi vremensku zonu postavljenu na tvom uređaju, a UTC je univerzalna referenca koju koriste poslužitelji i dnevnici. ISO 8601, na primjer 2023-11-14T22:13:20.000Z, nedvosmislen je tekstualni format preporučen za razmjenu datuma među sustavima; završno Z znači UTC.

Problem godine 2038.

Mnogi stariji sustavi pohranjuju Unix vrijeme kao 32-bitni cijeli broj s predznakom, čija je najveća vrijednost 2 147 483 647. Ta se granica dostiže 19. siječnja 2038. u 03:14:07 UTC. Sekundu kasnije takav brojač preljeva u veliki negativan broj i čita se kao datum u prosincu 1901. Moderni operacijski sustavi, baze podataka i jezici uglavnom su prešli na 64-bitne vremenske vrijednosti, koje granicu guraju milijardama godina u budućnost, ali ugrađeni uređaji, naslijeđeni formati datoteka i stari stupci baza podataka i dalje mogu biti pogođeni. Sam JavaScript nije pogođen jer pohranjuje vrijeme kao milisekunde u 64-bitnom broju s pomičnim zarezom.

Privatnost

Sve se pretvorbe odvijaju u tvom pregledniku pomoću njegovih ugrađenih funkcija za datume. Nijedna vremenska oznaka ni datum ne šalju se na poslužitelj.

Česta pitanja

Kako znam je li moja vremenska oznaka u sekundama ili milisekundama?

Prebroji znamenke. Trenutačni datum ima 10 znamenki u sekundama i 13 znamenki u milisekundama. Alat automatski primjenjuje istu logiku, na temelju veličine broja.

Zašto se lokalno vrijeme razlikuje od UTC-a?

Oboje opisuju isti trenutak. Lokalno vrijeme primjenjuje pomak vremenske zone tvog uređaja i pravila ljetnog računanja vremena, dok UTC nema pomak. Ako vrijeme dijeliš s ljudima drugdje, UTC ili ISO 8601 izbjegavaju nesporazume.

Može li Unix vremenska oznaka biti negativna?

Da. Negativne vrijednosti predstavljaju trenutke prije 1. siječnja 1970. UTC. Na primjer, -86400 je 31. prosinca 1969. u 00:00:00 UTC.

Sadrži li Unix vremenska oznaka vremensku zonu?

Ne. Vremenska oznaka uvijek je relativna prema UTC-u i ne nosi informaciju o vremenskoj zoni. Zona je važna tek kad je prikazuješ kao kalendarski datum i vrijeme.

Hoće li se moji sustavi pokvariti 2038.?

Samo ako pohranjuju vrijeme u 32-bitnom cijelom broju s predznakom. Provjeri starije baze podataka, ugrađeni firmver i binarne formate datoteka. Sve što koristi 64-bitno vrijeme sigurno je u doglednoj budućnosti.