Utilia

Unix időbélyeg átváltó

Váltsd át a másodpercben vagy ezredmásodpercben megadott Unix időbélyegeket olvasható dátummá helyi időben, UTC-ben és ISO 8601 formában, és fordítva.

Jelenlegi időbélyeg
–

Időbélyeg → dátum

Helyi idő
–
UTC
–
ISO 8601
–

Dátum → időbélyeg

Másodperc
–
Ezredmásodperc
–

Hogyan használd a Unix időbélyeg átváltót

  1. Időbélyeg dátummá alakításához illessz be egy epoch értéket, például 1700000000 vagy 1700000000000. Az eszköz a nagyságrendjéből felismeri, hogy másodpercben vagy ezredmásodpercben van-e megadva.
  2. Olvasd le az eredményt a helyi időzónádban, UTC-ben és ISO 8601 formátumban.
  3. A fordított irányhoz adj meg egy dátumot és időpontot; az eszköz visszaadja a megfelelő epoch értéket másodpercben és ezredmásodpercben is.
  4. Nézd meg felül a jelenlegi időbélyeget, amely élőben frissül, ha a „most” értékre van szükséged epoch formában.

Mi az a Unix időbélyeg?

A Unix időbélyeg, más néven epoch idő vagy POSIX-idő, a Unix-epocha óta eltelt másodpercek száma: 1970. január 1., 00:00:00 UTC. Például az 1700000000 2023. november 14-nek 22:13:20 UTC időpontjának felel meg. Az 1970 előtti dátumokat negatív számok ábrázolják.

Az időbélyegek a fejlesztők körében azért népszerűek, mert egyetlen szám, amely nem függ az időzónáktól, a nyári időszámítástól vagy a dátumformátumoktól. Két időpont összehasonlítása egyszerű kivonás, az idő szerinti rendezés pedig egyszerű numerikus rendezés. Találkozhatsz velük adatbázisokban, naplófájlokban, API-válaszokban, JWT-claimekben (például exp és iat), fájl-metaadatokban és cron-szerű ütemezőkben.

Vedd figyelembe, hogy a Unix-idő figyelmen kívül hagyja a szökőmásodperceket: minden nap pontosan 86 400 másodpercnek számít. Ez egyszerűvé teszi a számításokat, és ezért nem szigorúan az 1970 óta eltelt összes fizikai másodperc száma az időbélyeg.

Másodperc és ezredmásodperc

A leggyakoribb félreértés forrása a mértékegység. A hagyományos Unix-rendszerek, a PHP, a Python time.time() függvénye és a legtöbb adatbázis másodpercet használ, ami ma 10 számjegyű számot ad. A JavaScript Date.now(), a Java System.currentTimeMillis() és sok JSON-API ezredmásodpercet használ, ami 13 számjegyű számot ad. Ha az ezredmásodpercet másodpercnek értelmezed, több tízezer évvel a jövőben kötsz ki; ha a másodpercet értelmezed ezredmásodpercnek, 1970 januárjában. Ez az eszköz a szám nagyságából automatikusan kiválasztja a megfelelő mértékegységet, dátum konvertálásakor pedig mindkét értéket megmutatja, hogy a rendszered által várt értéket másolhasd ki.

Helyi idő, UTC és ISO 8601

Az időbélyeg egy pontos időpillanatot azonosít, de ez a pillanat az időzónától függően másképp jelenik meg. A helyi eredmény az eszközödön beállított időzónát használja, az UTC pedig a szerverek és naplók által használt egyetemes referencia. Az ISO 8601, például 2023-11-14T22:13:20.000Z, az a félreérthetetlen szöveges formátum, amelyet a rendszerek közötti dátumcserére ajánlanak; a záró Z UTC-t jelent.

A 2038-as probléma

Sok régebbi rendszer a Unix-időt előjeles 32 bites egész számként tárolja, amelynek legnagyobb értéke 2 147 483 647. Ezt a határt 2038. január 19-én 03:14:07 UTC időpontban érik el. Egy másodperccel később az ilyen számláló nagy negatív számba csordul át, és 1901 decemberi dátumként olvassák. A modern operációs rendszerek, adatbázisok és nyelvek nagyrészt áttértek a 64 bites időértékekre, amelyek a határt milliárd évekkel a jövőbe tolják, de a beágyazott eszközöket, a régi fájlformátumokat és a régi adatbázisoszlopokat még érintheti. Maga a JavaScript nem érintett, mert az időt ezredmásodpercként, 64 bites lebegőpontos számban tárolja.

Adatvédelem

Minden átváltás a böngésződben történik a beépített dátumfüggvényekkel. Semmilyen időbélyeg vagy dátum nem kerül elküldésre a szervernek.

Gyakori kérdések

Honnan tudom, hogy az időbélyegem másodpercben vagy ezredmásodpercben van?

Számold meg a számjegyeket. Egy mai dátum másodpercben 10, ezredmásodpercben 13 számjegyű. Az eszköz automatikusan ugyanezt a logikát alkalmazza a szám nagysága alapján.

Miért tér el a helyi idő az UTC-től?

Mindkettő ugyanazt a pillanatot írja le. A helyi idő az eszközöd időzóna-eltolását és a nyári időszámítás szabályait alkalmazza, az UTC-nek nincs eltolása. Ha másutt élőkkel osztasz meg egy időpontot, az UTC vagy az ISO 8601 elkerüli a félreértéseket.

Lehet negatív a Unix időbélyeg?

Igen. A negatív értékek az 1970. január 1., UTC előtti pillanatokat jelölik. Például a -86400 1969. december 31., 00:00:00 UTC.

Tartalmaz időzónát a Unix időbélyeg?

Nem. Az időbélyeg mindig az UTC-hez viszonyított, és nem hordoz időzóna-információt. Az időzóna csak akkor számít, amikor naptári dátumként és időként jeleníted meg.

Tönkremennek a rendszereim 2038-ban?

Csak akkor, ha az időt előjeles 32 bites egész számban tárolják. Ellenőrizd a régebbi adatbázisokat, a beágyazott firmware-eket és a bináris fájlformátumokat. Ami 64 bites időt használ, az belátható ideig biztonságos.