2038-vandinn

(Endurbeint frá 2038 vandamálið)

2038-vandinn á við um tæknilegar annmarkanir í forritum sem notast við svokallaða Unix tímaframsetningu, sem á við í macOS og öðrum POSIX-stöðluðum kerfum, og Linux. Vandamálið hefur verið lagað í macOS og iOS, og öllum nýrri Linux-kerfum (en ekki 32-bita útgáfum), en þar sem við á gæti orðið til þess að forrit festist í lykkjum (þ.e. forrit endurtekur sömu aðgerðir aftur og aftur), þau gefi rangar niðurstöður o.s.frv.

Dæmi um hvernig dagsetningin mun líta út 19. janúar 2038

Tímaframsetningin er í raun talning í sekúndum frá 1. janúar 1970, takmörkunin er sú að form tímaframsetningarinnar einskorðast við formerkta 32-bita tölu (mögulegur fjöldi jákvæðra sekúnda er því 231). Þetta þýðir að sekúndurnar eru taldar frá 0 upp í 2.147.483.647 (231) eða til klukkan 03:14:07 UTC þriðjudaginn 19. janúar 2038 ef talið er frá 1. janúar 1970. Á áðurnefndum degi byrjar forritið svo að telja upp á við frá −2.147.483.648 (-231) sekúndum. Þetta veldur að sjálfsögðu ruglingi í mörgum forritum þar sem tíminn verður neikvæður og mun valda því að forritið heldur að árið sé 1901 (þ.e.a.s. −2.147.483.648 sekúndum frá árinu 1. janúar 1970).

Lausnin felst í að breyta tímaframsetningunni úr 32 bitum yfir í 64 bita. Samsvarandi takmarkanir eru til staðar á þeirri framsetningu en þeirra verður ekki vart fyrr en eftir 290 milljarða ára. Ekki er litið á það sem aðkallandi vandamál.