Utilia

Unixi ajatempli muundur

Teisenda Unixi ajatemplid sekundites või millisekundites loetavateks kuupäevadeks kohalikus ajas, UTC-s ja ISO 8601 kujul ning kuupäevad tagasi epoch-ajaks.

Praegune ajatempel
–

Ajatempel → kuupäev

Kohalik aeg
–
UTC
–
ISO 8601
–

Kuupäev → ajatempel

Sekundid
–
Millisekundid
–

Kuidas Unixi ajatempli muundurit kasutada

  1. Ajatempli kuupäevaks teisendamiseks kleebi epoch-väärtus, näiteks 1700000000 või 1700000000000. Tööriist tuvastab suuruse järgi, kas see on sekundites või millisekundites.
  2. Loe tulemus oma kohalikus ajavööndis, UTC-s ja ISO 8601 vormingus.
  3. Vastupidises suunas sisesta kuupäev ja kellaaeg; tööriist tagastab vastava epoch-väärtuse nii sekundites kui ka millisekundites.
  4. Vaata üleval praegust ajatemplit, mis uueneb reaalajas, kui vajad “praegust hetke” epoch-väärtusena.

Mis on Unixi ajatempel?

Unixi ajatempel, mida nimetatakse ka epoch-ajaks või POSIX-ajaks, on sekundite arv, mis on möödunud Unixi epohhist: 1. jaanuarist 1970 kell 00:00:00 UTC. Näiteks 1700000000 vastab 14. novembrile 2023 kell 22:13:20 UTC. Enne 1970. aastat olevaid kuupäevi esitatakse negatiivsete arvudena.

Ajatemplid on arendajate seas populaarsed, sest need on üks arv, mis ei sõltu ajavöönditest, suve- ja talveajast ega kuupäevavormingutest. Kahe hetke võrdlemine on lihtne lahutamine ja ajajärjestusse sorteerimine lihtne arvuline sorteerimine. Neid kohtab andmebaasides, logifailides, API vastustes, JWT väidetes, nagu exp ja iat, failide metaandmetes ning cron-laadsetes ajastajates.

Pane tähele, et Unixi aeg ignoreerib liigsekundeid: iga päev loetakse täpselt 86 400 sekundiks. See hoiab aritmeetika lihtsa ja seepärast ei ole ajatempel range arv iga füüsilise sekundi kohta alates 1970. aastast.

Sekundid ja millisekundid

Kõige sagedasem segaduse allikas on ühik. Traditsioonilised Unixi süsteemid, PHP, Pythoni time.time() ja enamik andmebaase kasutavad sekundeid, mis annab tänapäeval 10-kohalise arvu. JavaScripti Date.now(), Java System.currentTimeMillis() ja paljud JSON-i API-d kasutavad millisekundeid, mis annab 13-kohalise arvu. Millisekundite lugemine sekunditena viib sind kümneid tuhandeid aastaid tulevikku; sekundite lugemine millisekunditena viib 1970. aasta jaanuarisse. See tööriist vaatab arvu suurust, et õige ühik automaatselt valida, ja kuupäeva teisendamisel näitab mõlemat väärtust, nii et saad kopeerida selle, mida su süsteem ootab.

Kohalik aeg, UTC ja ISO 8601

Ajatempel tähistab üht täpset hetke, kuid seda hetke kuvatakse ajavööndist olenevalt erinevalt. Kohalik tulemus kasutab sinu seadmes seadistatud ajavööndit, UTC on aga universaalne viide, mida kasutavad serverid ja logid. ISO 8601, näiteks 2023-11-14T22:13:20.000Z, on üheselt mõistetav tekstivorming, mida soovitatakse kuupäevade vahetamiseks süsteemide vahel; lõpus olev Z tähendab UTC-d.

2038. aasta probleem

Paljud vanemad süsteemid salvestavad Unixi aja märgiga 32-bitise täisarvuna, mille maksimaalne väärtus on 2 147 483 647. See piir saabub 19. jaanuaril 2038 kell 03:14:07 UTC. Sekund hiljem ületab selline loendur piiri suureks negatiivseks arvuks ja loetakse kuupäevaks 1901. aasta detsembris. Kaasaegsed operatsioonisüsteemid, andmebaasid ja keeled on suures osas läinud üle 64-bitistele ajaväärtustele, mis lükkavad piiri miljardeid aastaid tulevikku, kuid manussüsteemid, pärandfailivormingud ja vanad andmebaasiveerud võivad endiselt mõjutatud olla. JavaScripti ennast see ei mõjuta, sest see salvestab aja millisekunditena 64-bitises ujukomaarvus.

Privaatsus

Kõik teisendused toimuvad sinu brauseris selle sisseehitatud kuupäevafunktsioonidega. Ajatempleid ega kuupäevi ei saadeta serverisse.

Korduma kippuvad küsimused

Kuidas ma tean, kas mu ajatempel on sekundites või millisekundites?

Loe numbreid. Praegune kuupäev on sekundites 10 numbrit ja millisekundites 13 numbrit. Tööriist rakendab sama loogikat automaatselt, lähtudes arvu suurusest.

Miks kohalik aeg UTC-st erineb?

Mõlemad kirjeldavad sama hetke. Kohalik aeg rakendab sinu seadme ajavööndi nihet ja suveaja reegleid, UTC-l nihet pole. Kui jagad aega mujal olevate inimestega, väldib UTC või ISO 8601 arusaamatusi.

Kas Unixi ajatempel võib olla negatiivne?

Jah. Negatiivsed väärtused tähistavad hetki enne 1. jaanuari 1970 UTC. Näiteks -86400 on 31. detsember 1969 kell 00:00:00 UTC.

Kas Unixi ajatempel sisaldab ajavööndit?

Ei. Ajatempel on alati UTC suhtes ega kanna ajavööndi teavet. Ajavöönd loeb ainult siis, kui kuvad seda kalendrikuupäeva ja kellaajana.

Kas mu süsteemid lähevad 2038. aastal katki?

Ainult siis, kui need salvestavad aja märgiga 32-bitises täisarvus. Kontrolli vanemaid andmebaase, manustarkvara ja binaarseid failivorminguid. Kõik, mis kasutab 64-bitist aega, on ettenähtavas tulevikus turvaline.