Programméierer Mëssverständnis Iwwer Unix Zäit

ech entschëllege mech Patrick McKenzie.

Gëschter Danny Ech hunn iwwer e puer interessant Fakten iwwer Unix Zäit gefrot, an ech erënnere mech datt et heiansdo komplett onintuitiv funktionnéiert.

Dës dräi Fakte schéngen extrem raisonnabel a logesch, oder?

  1. Unix Zäit ass d'Zuel vu Sekonnen zënter dem 1. Januar 1970 00:00:00 UTC.
  2. Wann Dir genau eng Sekonn waart, ännert sech d'Unix Zäit ëm genau eng Sekonn.
  3. Unix Zäit beweegt sech ni no hannen.

Keen vun dësem ass wouer.

Awer et ass net genuch fir einfach ze soen, "Keen vun dësem ass wouer", ouni z'erklären. firwat. Kuckt hei ënnen fir Erklärungen. Awer wann Dir selwer wëllt denken, scroll net laanscht d'Bild vun der Auer!

Programméierer Mëssverständnis Iwwer Unix Zäit
Dësch Auer aus de 1770er. Zesummegestallt vum John Leroux. Vun Wëllkomm Kollektiounen. Verëffentlecht ënner Lizenz CC BY

All dräi Mëssverständnisser hunn ee Grond: sprangen Sekonnen. Wann Dir net mat Sprongsekonnen vertraut sidd, hei ass eng séier Referenz:

UTC Zäit gëtt vun zwee Faktore festgeluegt:

  • International Atomzäit: Duerchschnëttsliesunge vun honnerte vun atomarer Auer ronderëm d'Welt. Mir kënnen déi zweet duerch d'elektromagnetesch Eegeschafte vun engem Atom moossen, an dëst ass déi präzis Messung vun der Zäit, déi d'Wëssenschaft bekannt ass.
  • Weltzäit, baséiert op der Rotatioun vun der Äerd ëm seng eegen Achs. Eng voll Revolutioun ass een Dag.

De Problem ass datt dës zwou Zuelen net ëmmer passen. D'Äerdrotatioun ass net konsequent - se verlangsamt sech lues a lues, sou datt d'Deeg an der Universalzäit méi laang ginn. Op der anerer Säit sinn atomar Aueren devilishly korrekt a konstant iwwer Millioune Joer.

Wann zwee Mol aus der Synchroniséierung falen, gëtt eng zweet derbäigesat oder aus UTC geläscht fir se zréck an d'Synchronisatioun ze bréngen. Zënter 1972 Service IERS (déi leeft dësem Fall) dobäi 27 extra Sekonnen. D'Resultat war 27 UTC Deeg mat enger Dauer vun 86 Sekonnen. Theoretesch ass en Dag mat enger Dauer vun 401 Sekonnen (minus eng) méiglech. Béid Optioune widdersprécht der fundamentaler Viraussetzung vun der Unix Zäit.

D'Unix Zäit geet un datt all Dag genee 86 Sekonnen dauert (400 × 60 × 60 = 24), ouni zousätzlech Sekonnen. Wann esou e Sprong geschitt, da spréngt d'Unix Zäit entweder eng Sekonn, oder zielt zwou Sekonnen an engem. Zënter 86 feelt et 400 Sprongsekonnen.

Also eis Mëssverständnisser mussen ergänzt ginn wéi follegt:

  • Unix Zäit ass d'Zuel vu Sekonnen zënter dem 1. Januar 1970 00:00:00 UTC minus Sprongsekonnen.
  • Wann Dir genau eng Sekonn waart, ännert d'Unix Zäit ëm genau eng Sekonn, ausser wann d'Schrëtt Sekonn ewechgeholl gouf.

    Bis elo sinn an der Praxis nach ni Sekonne geläscht ginn (an d'Verlängerung vun der Äerdrotatioun heescht dat ass onwahrscheinlech), awer wann et jeemools geschitt, géif et heeschen, datt den UTC-Dag eng Sekonn méi kuerz gëtt. An dësem Fall gëtt déi lescht Sekonn vun UTC (23:59:59) verworf.

    All Unix-Dag huet déiselwecht Unzuel u Sekonnen, sou datt déi lescht Unix-Sekonn vun engem verkierzte Dag keng UTC-Zäit entsprécht. Hei ass wéi et ausgesäit, a Véierel-Sekonn Intervalle:

    Programméierer Mëssverständnis Iwwer Unix Zäit

    Wann Dir um 23:59:58:00 UTC ufänkt an eng Sekonn waart, wäert d'Unix Zäit zwou UTC Sekonnen virukommen an den Unix 101 Zäitstempel gëtt net fir jiddereen zougewisen.

  • Unix Zäit kann ni zréck goen, bis eng Sprongsekonnen dobäi ass.

    Dat ass an der Praxis schonn 27 Mol geschitt. Um Enn vum UTC Dag gëtt eng zousätzlech Sekonn um 23:59:60 derbäigesat. Unix huet déiselwecht Unzuel vu Sekonnen an engem Dag, sou datt et keng extra Sekonn kann addéieren - amplaz muss et d'Unix Zäitstempel fir déi lescht Sekonn widderhuelen. Hei ass wéi et ausgesäit, a Véierel-Sekonn Intervalle:

    Programméierer Mëssverständnis Iwwer Unix Zäit

    Wann Dir um 23:59:60.50 fänkt a waart eng hallef Sekonn, d'Unix Zäit kënnt zréck ëm eng hallef Sekonn, an den Unix 101 Zäitstempel entsprécht zwou UTC Sekonnen.

Dëst si wahrscheinlech net déi eenzeg Komeschheeten vun der Unix Zäit - just wat ech mech gëschter erënnert hunn.

Zäit - ganz komesch Saach.

Source: will.com

Setzt e Commentaire