Azt érted félre, hogy az a baj, hogy a Unix time szerint egy nap mindenképpen 86400 időegységből áll (Unix másodpercből) áll. Azaz egy adott nap Unix idejéhez (ami csak egy szám) ha hozzáadok 86400-at, akkor a következő nap azonos időpontját kéne kapnom.
Viszont a civil időszámítás (az UTC) nem így múködik, egy nap állhat akár 86399 és 86401 SI másodpercből (ejnye, a Föld forgása ilyen).
Ezért a Unix időt szinkronizálni kell az UTC-hez ilyen esetekben, hogy igaz legyen az, hogy egy nap 86400 Unix másodpercből áll.
Ezt úgy teszik meg, hogy a Unix óra nem jár egyenletesen (ez a nemlinearitás), hanem lassabban/gyorsabban jár, amikor szökőmásodperc van. Facebookéknál például 17 óra alatt nem 17*3600, hanem 17*3600 + 1 SI másodpercet tesz meg a Unix idő (miközben 17*3600 Unix másodperc telik el a számlálón), amikor +1 UTC szökőmásodperc van. Azaz ilyenkor egy Unix másodperc nem egyenlő egy SI másodperccel.
A probléma abból ered, hogy Unix időben minden nap 86400 Unix másodperc hosszú. Miközben a civil időszámításban egy nap 86399-86401 SI másodperc hosszú lehet.
Az SI másodperc hossza mindig jól definiált, az nem változik soha, két SI másodperc mindig ugyanannyi időtartam, emiatt kell szökőmásodperccel szinkronizálni a napok (civil időszámítás) és az SI másodpercek (technikai, fizikai időszámítás) között.
Viszont a Unix másodperc hossza nem definiált (a nap hossza van definiálva 86400 másodpercként), ők a szökőmásodperceket valójában azzal oldják meg, hogy két Unix másodperc eltérő hosszúságú is lehet, ők ezzel szinkronizálnak a napok (civil időszámítás) és a Unix másodpercek (technikai időszámítás) között.
Így talán érthető a probléma jellege: két SI másodperc mindig ugyanolyan hosszú, de két Unix másodperc nem.
A félreértéseket mindig az okozza, hogy nem mindegy, hogy SI vagy Unix másodpercről van szó, csak simán a másodperc fogalma Unix környezetben nem jól definiált.
A Facebook hozzáállása az, hogy a Unix megoldása jobb, és a UTC megoldása a rosszabb. Csakhogy nem számolnak azzal, hogy a valódi, civil életben évezredek óta szeretünk a Föld forgásához igazítani az időszámításunkon. Én amondó vagyok, hogy a Unix-féle specifikáció a rossz, a civil/fizikai/csillagászati időszámítást figyelembe vevő UTC a jobb.
Szerk: ami a fő probléma, hogy a számítógépeken csak konfiguráció kérdése, hogy az óra lassítása/gyorsítása mennyi ideig tart (mennyi ideig oszlatják szét a szökőmásodpercet), meg hogy mikor kezdődik, az rendszerbeállítás-függő. Emiatt két eltérő rendszerből származó, UNIX időszámításon alapuló timestamp, ha eltérő, még jelentheti ugyanazt az időpillanatot, illetve attól, hogy ugyanaz, még jelenthet eltérő időpillanatot, két rendszer Unix szerint mért ideje nem összehasonlítható addig, amíg a rendszereken folyik a smearing. Emiatt az olyan elosztott rendszerek, mint a Facebook, hibákba futhatnak, ha Unix időszámítás alapú timestampeket használnak.