Unix-aikaleimamuunnin
Muunna Unix-aikaleimat sekunneista tai millisekunneista luettaviksi päivämääriksi paikallisessa ajassa, UTC:ssä ja ISO 8601 -muodossa. Muunna myös takaisin.
Aikaleima → päivämäärä
- Paikallinen aika
- –
- UTC
- –
- ISO 8601
- –
Päivämäärä → aikaleima
- Sekunnit
- –
- Millisekunnit
- –
Näin käytät Unix-aikaleimamuunninta
- Jos haluat muuntaa aikaleiman päivämääräksi, liitä epoch-arvo, kuten
1700000000tai1700000000000. Työkalu tunnistaa suuruusluokasta, onko arvo sekunteja vai millisekunteja. - Lue tulos paikallisella aikavyöhykkeelläsi, UTC-aikana ja ISO 8601 -muodossa.
- Toiseen suuntaan voit syöttää päivämäärän ja kellonajan; työkalu palauttaa vastaavan epoch-arvon sekä sekunteina että millisekunteina.
- Vilkaise ylhäällä olevaa nykyistä aikaleimaa, joka päivittyy livenä, kun tarvitset “nyt” epoch-arvona.
Mikä on Unix-aikaleima?
Unix-aikaleima, jota kutsutaan myös epoch-ajaksi tai POSIX-ajaksi, on Unix-epookista kulunut sekuntimäärä: 1. tammikuuta 1970 kello 00:00:00 UTC. Esimerkiksi 1700000000 vastaa ajankohtaa 14. marraskuuta 2023 kello 22:13:20 UTC. Ennen vuotta 1970 olevat päivämäärät esitetään negatiivisilla luvuilla.
Aikaleimat ovat kehittäjien suosiossa, koska ne ovat yksi luku, joka ei riipu aikavyöhykkeistä, kesäajasta tai päivämäärämuodoista. Kahden hetken vertailu on yksinkertainen vähennyslasku ja ajan mukaan järjestäminen yksinkertainen numeerinen lajittelu. Niitä löytyy tietokannoista, lokitiedostoista, API-vastauksista, JWT-kentistä kuten exp ja iat, tiedostojen metatiedoista ja cron-tyylisistä ajastimista.
Huomaa, että Unix-aika ei huomioi karkaussekunteja: jokainen päivä lasketaan täsmälleen 86 400 sekunniksi. Se pitää laskennan yksinkertaisena ja selittää, miksi aikaleima ei ole tarkka laskelma jokaisesta fyysisestä sekunnista vuodesta 1970.
Sekunnit vai millisekunnit
Yleisin sekaannuksen lähde on yksikkö. Perinteiset Unix-järjestelmät, PHP, Pythonin time.time() ja useimmat tietokannat käyttävät sekunteja, mikä antaa nykyään 10-numeroisen luvun. JavaScriptin Date.now(), Javan System.currentTimeMillis() ja monet JSON-rajapinnat käyttävät millisekunteja, mikä antaa 13-numeroisen luvun. Jos millisekunnit tulkitaan sekunneiksi, päädytään kymmeniä tuhansia vuosia tulevaisuuteen; jos sekunnit tulkitaan millisekunneiksi, päädytään tammikuuhun 1970. Tämä työkalu katsoo luvun suuruutta ja valitsee oikean yksikön automaattisesti, ja päivämäärää muunnettaessa se näyttää molemmat arvot, jotta voit kopioida järjestelmäsi odottaman.
Paikallinen aika, UTC ja ISO 8601
Aikaleima tunnistaa yhden tarkan hetken, mutta hetki näytetään eri tavoin aikavyöhykkeen mukaan. Paikallinen tulos käyttää laitteellesi määritettyä aikavyöhykettä, kun taas UTC on palvelimien ja lokien käyttämä yleinen vertailuaika. ISO 8601, kuten 2023-11-14T22:13:20.000Z, on yksiselitteinen tekstimuoto, jota suositellaan päivämäärien vaihtoon järjestelmien välillä; loppuun liitetty Z tarkoittaa UTC:tä.
Vuoden 2038 ongelma
Monet vanhemmat järjestelmät tallentavat Unix-ajan etumerkillisenä 32-bittisenä kokonaislukuna, jonka suurin arvo on 2 147 483 647. Tämä raja saavutetaan 19. tammikuuta 2038 kello 03:14:07 UTC. Sekunnin myöhemmin tällainen laskuri vuotaa yli suureksi negatiiviseksi luvuksi ja luetaan joulukuun 1901 päivämääräksi. Nykyaikaiset käyttöjärjestelmät, tietokannat ja kielet ovat suurelta osin siirtyneet 64-bittisiin aika-arvoihin, jotka työntävät rajan miljardien vuosien päähän, mutta sulautetut laitteet, vanhat tiedostomuodot ja vanhat tietokantasarakkeet voivat edelleen olla alttiita. JavaScript itse ei ole alttiina, koska se tallentaa ajan millisekunteina 64-bittisenä liukulukuna.
Yksityisyys
Kaikki muunnokset tapahtuvat selaimessasi sen sisäänrakennetuilla päivämääräfunktioilla. Aikaleimoja tai päivämääriä ei lähetetä palvelimelle.
Usein kysytyt kysymykset
Mistä tiedän, onko aikaleimani sekunteja vai millisekunteja?
Laske numerot. Nykyinen päivämäärä on sekunteina 10 numeroa ja millisekunteina 13 numeroa. Työkalu soveltaa samaa logiikkaa automaattisesti luvun suuruuden perusteella.
Miksi paikallinen aika poikkeaa UTC:stä?
Molemmat kuvaavat samaa hetkeä. Paikallinen aika soveltaa laitteesi aikavyöhykkeen siirtymää ja kesäaikasääntöjä, kun taas UTC:ssä ei ole siirtymää. Jos jaat ajan muualla asuvien kanssa, UTC tai ISO 8601 välttää väärinkäsitykset.
Voiko Unix-aikaleima olla negatiivinen?
Voi. Negatiiviset arvot kuvaavat hetkiä ennen 1. tammikuuta 1970 UTC. Esimerkiksi -86400 on 31. joulukuuta 1969 kello 00:00:00 UTC.
Sisältääkö Unix-aikaleima aikavyöhykkeen?
Ei. Aikaleima on aina suhteessa UTC:hen eikä sisällä aikavyöhyketietoa. Aikavyöhyke on merkitsevä vasta, kun näytät sen kalenteripäivämääränä ja kellonaikana.
Menevätkö järjestelmäni rikki vuonna 2038?
Vain jos ne tallentavat ajan etumerkillisenä 32-bittisenä kokonaislukuna. Tarkista vanhemmat tietokannat, sulautettu laiteohjelmisto ja binääriset tiedostomuodot. Kaikki 64-bittistä aikaa käyttävä on turvassa ennakoitavissa olevan tulevaisuuden.
Aiheeseen liittyvät työkalut
- UUID-generaattori Ilmainen UUID-generaattori v4- ja v7-tunnisteille. Luo jopa 1 000 kerralla isoilla kirjaimilla tai ilman tavuviivoja ja lataa .txt-tiedostona.
- JSON-muotoilija ja -validaattori Ilmainen JSON-muotoilija ja -validaattori, joka siistii, pienentää ja tarkistaa JSONin selaimessa ja ilmoittaa syntaksivirheet rivin ja sarakkeen kanssa.