Dátum, idő és munkaidő

Unix-időbélyeg: másodperc, milliszekundum és a megjelenített dátum

Tíz- és tizenhárom jegyű időadatok, UTC és helyi megjelenítés. Végigszámolt időbélyegpélda, ezredmásodpercek, időtartam és tipikus importhibák.

Dajka Gábor7 perc olvasásFrissítve: 2026-10-17

Egy Unix-időbélyeg értelmezéséhez először a mértékegységet kell ismerned. Másodperc és milliszekundum között ezerszeres a különbség. Ha rossz egységben olvasod be az adatot, az eredmény egészen más évre eshet, vagy kívül kerülhet az alkalmazás kezelhető tartományán. Ez gyakori importhiba, amelyet az időzóna állítgatása nem fog megoldani.

Mihez képest számoljuk az időt?

A Unix-idő alapja az 1970. január 1. 00:00:00 UTC kezdőpillanat. A böngészők JavaScript Date objektuma ehhez képest milliszekundumban tárolja az időt; a szökőmásodperceket figyelmen kívül hagyja. A működést az MDN Date dokumentációja foglalja össze.

Az alapátváltás egyszerű:

Milliszekundum = másodperc × 1 000.

Másodperc = milliszekundum / 1 000.

A napló vagy API mezőjének leírása dönti el, melyik egységet kapod. A számjegyek száma hasznos gyanújel, de önmagában nem formátumleírás. Régi dátum, jövőbeli dátum és negatív érték is megváltoztathatja a szám hosszát.

Az egység átváltása a mérés pontosságát nem növeli. Egy egész másodpercre rögzített eseményhez három nullát írva szabályos milliszekundumos számot kapsz, de az eredeti másodpercen belüli részlet továbbra is ismeretlen. Importkor a forrás felbontását is őrizd meg. Két ilyen, ugyanarra a másodpercre rögzített esemény sorrendjét a hosszabb számalakból nem tudod visszaállítani.

Egy teljes, ellenőrizhető példa

Szemléltető példánk kezdőpillanata 2026. január 1. 00:00:00 UTC. Ehhez 1 767 225 600 másodperces időbélyeg tartozik. Milliszekundumban ugyanez:

1 767 225 600 × 1 000 = 1 767 225 600 000 ms.

Ha ehhez 90 500 milliszekundumot adunk, az 90,5 másodperc, vagyis 1 perc 30,5 másodperc. Az új érték 1 767 225 690 500 ms, a megjelenített UTC idő pedig 00:01:30,500. A tört másodpercet csak akkor kerekítsd el, ha a célrendszer valóban egész másodperceket fogad.

A Unix timestamp átváltó felső űrlapján válaszd a Unix idő → dátum módot, és a Unix timestamp másodperc mezőbe 1767225600 értéket írj. Az ISO 8601 sorban 2026-01-01T00:00:00.000Z legyen az eredmény. Ha a kiinduló adatod 1767225600000 milliszekundum, ebbe a mezőbe az 1000-rel osztott érték kerül. A főmező a teljes beírt számot másodpercként értelmezi.

Közvetlen milliszekundumos ellenőrzéshez görgess le ugyanazon az oldalon az Időbélyeg- és időzónaműhelyhez. A Bemenet mezőben válaszd a Unix milliszekundum lehetőséget, a Dátum vagy időbélyeg mezőbe pedig írd a fenti 1767225690500 értéket. A Számítás / feldolgozás után az UTC-sorban 2026-01-01T00:01:30.500Z jelenik meg: itt a fél másodperc is ellenőrizhető. Másik rendszerbe a szám mellett az egységet is vidd tovább.

Ugyanaz a pillanat más órát mutathat

A fenti kezdőpillanat rögzített UTC+01:00 eltolással 2026. január 1. 01:00:00-ként jelenik meg. A tárolt időbélyeg változatlan. A kijelzett óra attól függ, melyik időzónában vagy rögzített eltolással alakítod naptári dátummá.

Egy önmagában álló „2026-01-01 00:00” szöveg ezzel szemben hiányos lehet: a fogadó félnek tudnia kell, milyen időzónában értendő. Az RFC 3339 időbélyeg-formátuma a dátumhoz és időhöz UTC-jelölést vagy számszerű eltolást társít. Adatcserénél az ilyen egyértelmű jelölés segít megelőzni a többórás eltérést.

Időtartam két időbélyegből

Azonos egységű időbélyegeket vonj ki egymásból. Ha a különbség 7 200 000 ms, akkor 7 200 000 / 1 000 = 7 200 másodperc, majd 7 200 / 3 600 = 2 óra. A kijelzett helyi órák kivonása óraátállítás közelében eltérő eredményt adhat; az időpontok különbsége a célodhoz illőbb kiindulás.

A 86 400 másodperces hozzáadás pontos időtartamot jelent ebben a modellben. Egy helyi naptári nap vagy egy naptári hónap hozzáadása külön művelet. Egy hónapra ezért ne használj minden helyzetben azonos másodpercszámot.

Két gép időbélyegéből mikor bizonyítható a sorrend?

Az UTC-jelölés egységes formát ad, az órák pontosságát külön kell ellenőrizned. Saját hipotetikus példában két külön gép naplóbejegyzése között 30 ms látszik. Mindkét gép órájának tényleges eltérése legfeljebb ±80 ms lehet. A két óra hibája a különbségben akár 160 ms-ot is kitehet, így a valós időeltérés a megadott feltételek mellett −130 és +190 ms közé eshet. Ebből a két számból az események sorrendje sem állapítható meg biztosan.

Azonos böngészői futáson belüli rövid művelet mérésére a W3C High Resolution Time monoton órát ír le, amelyet a rendszeróra átállítása nem léptet vissza. Az ilyen időmérésnek saját kezdőpontja és érvényességi köre van; külön gépek számlálóértékeit nem vonhatod ki közös Unix-időként.

Események összerendeléséhez tartsd meg a kérés vagy tranzakció azonosítóját, a forrásrendszert és az időbélyeg pontosságát. Az időbélyeg önmagában nem garantál egyedi sorrendszámot: ugyanabban a milliszekundumban több esemény is történhet.

Napi exportban a következő nap kezdetét zárd ki

Egy napi lista határát pontosabban adja meg két egymást követő nap kezdete, mint a „23:59:59” végpont. Maradjunk kifejezetten UTC-ben, milliszekundumos adatokkal. 2026. január 1. kezdete 1 767 225 600 000, január 2. kezdete 1 767 312 000 000.

Az első napi szűrés szabálya:

1 767 225 600 000 ≤ időbélyeg < 1 767 312 000 000.

Az alsó határ beletartozik, a felső kimarad. Milliszekundumos pontosságnál az utolsó beférő érték 1 767 311 999 999. A pontosan január 2. 00:00:00 UTC-kor történt esemény már a következő napi listába kerül. Így a két egymás melletti export nem számolja kétszer az éjféli eseményt, és az utolsó másodperc tört részei sem vesznek el.

A két UTC-határ különbsége itt 86 400 000 ms. Helyi naptári napnál először az adott időzóna két helyi éjfelét váltsd időbélyeggé; az óraváltás miatt a különbség eltérhet. A fenti szűrés kézi vagy saját rendszerben megvalósított feldolgozási szabály, az időbélyeg-átváltóval a végpontokat ellenőrizheted.

Négy adat az import ellenőrzéséhez

Jegyezd fel az eredeti számot, az egységét, az elvárt UTC időpontot és a kívánt helyi megjelenítést. Először egyetlen ismert sorral próbáld ki az átalakítást. Ha ez jó, nézz meg egy napváltás környéki sort is.

A negatív időbélyeg önmagában érvényes lehet: a kezdőpillanat előtti időt jelölheti. A nulla a konkrét kezdőpillanatot jelöli. Egy adatbázis üres mezőjét ezért ne cseréld automatikusan nullára, mert ezzel egy valótlan, 1970-es dátumot hoznál létre.

Záró tudáspróba

Kérdésenként egy választ jelölj meg, majd a megoldások alapján pontozd magad. Ez a három kérdés a cikkben bemutatott összefüggéseket ellenőrzi.

1. Mit kell tenned az 1 767 225 600 000 ms értékkel, ha a fogadó mező másodpercet kér?

  • A) Változtatás nélkül beírni, majd másik időzónát választani.
  • B) Megszorozni 1 000-rel.
  • C) Elosztani 1 000-rel: 1 767 225 600 másodperc kerül a mezőbe.

2. Két gép naplójában 30 ms eltérés látszik, mindkét óra hibája legfeljebb ±80 ms. Mi következik ebből?

  • A) A tényleges eltérés biztosan pontosan 30 ms.
  • B) A tényleges eltérés −130 és +190 ms közé eshet; a sorrend nem bizonyított.
  • C) A tényleges eltérés biztosan pozitív, mert mindkét napló UTC-t használ.

3. Hová sorolod a pontosan a következő napi 00:00:00 UTC-kor történt eseményt félzárt napi exportnál?

  • A) A következő napi listába.
  • B) Egyik napi listába sem.
  • C) Mindkét napi listába.

Megoldások és pontozás

1. C. A másodperc ezerszer hosszabb egység a milliszekundumnál; ugyanaz a pillanat másodpercben ezredakkora számmal írható le. Ismétléshez: Mihez képest számoljuk az időt?.

2. B. A két óra hibája a különbségben legfeljebb 160 ms lehet. A 30 − 160 és 30 + 160 határ különböző előjelű. Ismétléshez: Két gép időbélyegéből mikor bizonyítható a sorrend?.

3. A. Az első napi szűrés a következő nap kezdetét kizárja, a következő napi szűrés saját kezdőpontját tartalmazza. Így az éjféli esemény egyszer szerepel. Ismétléshez: Napi exportban a következő nap kezdetét zárd ki.

Minden helyes válasz 1 pont; a hibás vagy kihagyott válasz 0 pont. Az összpontszám 0–3 lehet.

  • 0 pont: dolgozd végig újra a három megoldásban megjelölt részt, és írd le a példák kiinduló feltételeit.
  • 1 pont: a két elhibázott kérdésnél vezesd le a helyes választ; külön írd mellé, melyik feltétel vagy számolási lépés maradt ki.
  • 2 pont: térj vissza az egyetlen elhibázott kérdéshez kapcsolt részhez, majd egy bemenet megváltoztatásával ellenőrizd újra az eredményt.
  • 3 pont: a három összefüggést ebben a feladatsorban helyesen alkalmaztad. Próbáld ki a cikk egyik ellenőrzését saját adatokkal, a feltételeket és a mértékegységeket is feljegyezve.
További cikkek

Kapcsolódó olvasnivalók

Gyorskereső

Kalkulátorok és útmutatók keresése

↑↓ választásEnter megnyitásEsc bezárás