Pretvornik časa Unix
Pretvori časovne žige Unix v sekundah ali milisekundah v berljive datume v lokalnem času, UTC in ISO 8601 ter vsak datum pretvori nazaj v čas epohe.
Časovni žig → datum
- Lokalni čas
- –
- UTC
- –
- ISO 8601
- –
Datum → časovni žig
- Sekunde
- –
- Milisekunde
- –
Kako uporabljati pretvornik časa Unix
- Za pretvorbo časovnega žiga v datum prilepi vrednost epohe, kot je
1700000000ali1700000000000. Orodje po velikosti števila zazna, ali je v sekundah ali milisekundah. - Rezultat preberi v svojem lokalnem časovnem pasu, v UTC in v obliki ISO 8601.
- Za obratno smer vnesi datum in čas; orodje vrne ustrezno vrednost epohe v sekundah in milisekundah.
- Pogledaš lahko trenutni časovni žig na vrhu, ki se posodablja v živo, kadar potrebuješ »zdaj« kot vrednost epohe.
Kaj je časovni žig Unix?
Časovni žig Unix, imenovan tudi čas epohe ali čas POSIX, je število sekund, ki so pretekle od epohe Unix: 1. januarja 1970 ob 00:00:00 UTC. Na primer, 1700000000 ustreza 14. novembru 2023 ob 22:13:20 UTC. Datumi pred letom 1970 so predstavljeni z negativnimi števili.
Časovni žigi so med razvijalci priljubljeni, ker so eno samo število, ki ni odvisno od časovnih pasov, poletnega časa ali oblik datuma. Primerjava dveh trenutkov je preprosto odštevanje, razvrščanje po času pa preprosto številsko razvrščanje. Najdeš jih v zbirkah podatkov, dnevniških datotekah, odgovorih API, trditvah JWT, kot sta exp in iat, metapodatkih datotek in razporejevalnikih, podobnih cronu.
Upoštevaj, da čas Unix ne upošteva prestopnih sekund: vsak dan šteje natanko 86 400 sekund. To ohranja preprost izračun in je razlog, da časovni žig ni strogo štetje vsake fizične sekunde od leta 1970.
Sekunde ali milisekunde
Najpogostejši vir zmede je enota. Tradicionalni sistemi Unix, PHP, time.time() v Pythonu in večina zbirk podatkov uporabljajo sekunde, kar danes da 10-mestno število. Date.now() v JavaScriptu, System.currentTimeMillis() v Javi in številni API-ji JSON uporabljajo milisekunde, kar da 13-mestno število. Če milisekunde razumeš kot sekunde, pristaneš desettisoče let v prihodnosti; če sekunde razumeš kot milisekunde, pristaneš v januarju 1970. To orodje po velikosti števila samodejno izbere pravo enoto, pri pretvorbi datuma pa pokaže obe vrednosti, da skopiraš tisto, ki jo pričakuje tvoj sistem.
Lokalni čas, UTC in ISO 8601
Časovni žig označuje en natančen trenutek, vendar je ta trenutek odvisno od časovnega pasu prikazan drugače. Lokalni rezultat uporablja časovni pas, nastavljen na tvoji napravi, UTC pa je univerzalna referenca, ki jo uporabljajo strežniki in dnevniki. ISO 8601, na primer 2023-11-14T22:13:20.000Z, je nedvoumna besedilna oblika, priporočena za izmenjavo datumov med sistemi; zaključni Z pomeni UTC.
Težava leta 2038
Mnogi starejši sistemi shranjujejo čas Unix kot 32-bitno celo število s predznakom, katerega največja vrednost je 2 147 483 647. Ta meja je dosežena 19. januarja 2038 ob 03:14:07 UTC. Sekundo kasneje tak števec preliva v veliko negativno število in se bere kot datum v decembru 1901. Sodobni operacijski sistemi, zbirke podatkov in jeziki so večinoma prešli na 64-bitne vrednosti časa, ki mejo potisnejo milijarde let v prihodnost, a vgrajene naprave, podedovane oblike datotek in stari stolpci zbirk podatkov so lahko še vedno prizadeti. JavaScript sam ni prizadet, ker čas shranjuje kot milisekunde v 64-bitnem številu s plavajočo vejico.
Zasebnost
Vse pretvorbe potekajo v tvojem brskalniku z vgrajenimi funkcijami za datume. Noben časovni žig ali datum se ne pošlje na strežnik.
Pogosta vprašanja
Kako vem, ali je moj časovni žig v sekundah ali milisekundah?
Preštej števke. Sedanji datum ima v sekundah 10 števk, v milisekundah pa 13. Orodje isto logiko uporabi samodejno, glede na velikost števila.
Zakaj se lokalni čas razlikuje od UTC?
Oba opisujeta isti trenutek. Lokalni čas upošteva odmik časovnega pasu tvoje naprave in pravila poletnega časa, UTC pa nima odmika. Če čas deliš z ljudmi drugje, UTC ali ISO 8601 preprečita nesporazume.
Ali je lahko časovni žig Unix negativen?
Da. Negativne vrednosti predstavljajo trenutke pred 1. januarjem 1970 UTC. Na primer, -86400 je 31. december 1969 ob 00:00:00 UTC.
Ali časovni žig Unix vsebuje časovni pas?
Ne. Časovni žig je vedno relativen glede na UTC in ne nosi podatka o časovnem pasu. Časovni pas je pomemben šele, ko ga prikažeš kot koledarski datum in čas.
Ali se bodo moji sistemi leta 2038 pokvarili?
Samo če shranjujejo čas v 32-bitnem celem številu s predznakom. Preveri starejše zbirke podatkov, vgrajeno strojno programsko opremo in dvojiške oblike datotek. Vse, kar uporablja 64-bitni čas, je varno za predvidljivo prihodnost.
Sorodna orodja
- Generator UUID Brezplačen generator UUID različice 4 in 7. Ustvari do 1000 naenkrat, z velikimi črkami ali brez vezajev, nato kopiraj ali prenesi kot .txt.
- Oblikovalnik in preverjevalnik JSON Brezplačen oblikovalnik in preverjevalnik JSON, ki v brskalniku polepša, zmanjša in preveri JSON, sintaksne napake pa javi z vrstico in stolpcem.