|
A Unix-idő vagy POSIX idő a számítástechnikában a UTC szerinti 1970. január 1. éjfél óta eltelt másodpercek száma, a szökőmásodperceket nem számolva. A Unix-szerű operációs rendszerek mellett számos más alkalmazásban is használják. A Unix-idő, bár sokan tévesen annak hiszik, valójában nem lineáris reprezentációja az időnek, és nem valódi reprezentációja a UTC-nak, mert a szökőmásodperceket nem lehet vele megadni.
DefinícióA Unix-idő két egymásra épülő kódolásból áll, amik külön is használhatók. Az első egy időpontot egy valós számmá konvertál, a második pedig a számot egy bitsorozattá. Az idő átalakítása számmáA modern Unix-idő a UTC-on alapszik. A UTC másodperceket számol, és az időt napokra osztja. Egy UTC nap általában 86 400 másodperc, de 86 401 vagy 86 399 másodperc is, ha egy szökőmásodpercet iktatnak be vagy vesznek el, hogy a Föld forgásával szinkronban tartsák. A Unix-idő nulla pontja az ún. „Unix epoch”, azaz a UTC szerinti 1970. január 1. 00:00:00. (A probléma ezzel a definícióval az, hogy a UTC jelen formájában csak 1972 óta létezik. Erre a kérdésre később visszatérünk.) A szakasz hátralévő része a rövidség kedvéért az ISO 8601 dátumformátumot használja, amiben az Unix epoch 1970-01-01T00:00:00Z. A Unix-idő minden nap 86 400 másodperccel nő, így például 2004-09-16T00:00:00Z, ami 12 677 nappal a Unix epoch után van, Unix-időben 12 677 × 86 400 = 1 095 292 800. A Unix epoch előtti időpontok hasonlóan ábrázolhatóak negatív számok segítségével: 1957-10-04T00:00:00Z, 4472 nappal a Unix epoch előtt, a Unix idő szerint -4472 × 86 400 = -386 380 800. A dátumból így kapott számhoz hozzá kell adni az éjfél óta eltelt másodpercek számát, hogy megkapjuk a teljes Unix-időt. Így például 2004-09-16T17:55:43.54Z, ami 64 543,54 másodperccel van éjfél után, Unix-időben 1 095 292 800 + 64 543,54 = 1 095 357 343,54. Az összeg második tagja természetesen a Unix epoch előtti dátumoknál is pozitív. A fentiekből következik, hogy egy normális (86 400 másodperces) UTC napon a Unix-idő éjfélkor is folytonosan nő. Például a fenti példában szereplő nap végén az idő különféle reprezentációi így változnak (a TAI a UTC-hoz hasonló, de szökőmásodpercek nélküli időreprezentáció):
Ha a UTC nap egy szökőmásodperc miatt nem pontosan 86 400 másodperc hosszú, a Unix-időben egy szakadás lép fel. A Unix idő pontosan 86 400-zal nő minden nap, függetlenül a nap hosszától. Ha egy szökőmásodperc elmarad (ilyenre eddig nem volt még példa), a Unix-idő egy egységet ugrik azon a helyen, ahonnan a szökőmásodpercet törölték (ami a nap vége). Ha beszúrnak egy szökőmásodpercet (ez átlagosan másfél évente történik meg), a Unix-idő folytonosan nő a szökőmásodperc ideje alatt, majd a szökőmásodperc végén egy egységet visszaugrik. Például a POSIX szabványt pontosan betartó rendszerekben 1998 végén ez így nézett ki:
Mint látható, a 915 148 800,50 nem egyértelmű: vonatkozhat a szökőmásodperc és az azt követő másodperc közepére is. Negatív szökőmásodperc esetén nem lenne kétértelműség, viszont lenne olyan értéke a Unix-időnek, ami nem felel meg semmilyen valós időpontnak. A Unix rendszerek óráinak szökőmásodperc kezelése gyakran eltér ettől, és a Network Time Protocol-t követi. Az ilyen , nem POSIX-konform rendszereket a következő szakasz írja le. Ha két időpont között nincs szökőmásodperc, a megfelelő Unix-idők különbsége egyenlő a két időpont közötti időtartammal, másodpercben. Ezt gyakran kihasználják a számítástechnikában; az ilyen számítások azonban a szökőmásodpercek miatt pontatlanná válhatnak. Azokban az alkalmazásokban, ahol másodperces vagy nagyobb pontosságra van szükség, szökőmásodperc-táblázatokat használnak vagy más időreprezentációt választanak. Lásd mégKülső hivatkozások |
This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.
Mercedes Car
This site monitored by SitePinger.net