Basic personligt

Daniels personliga blogg

30 år kvar till nästa datumbugg

Nu på lördag är det exakt 30 år tills nästa datumbugg, Y2K38.

Problemet med Y2K var ju att folk lagrade årtal med två siffror, vilket gjorde det svårt att skilja 1901 från 2001.

Y2K38 är lite mer komplicerad. Många system, framför allt de som kör Unix, räknar tid som antalet sekunder sedan första januari 1970. Det värdet kan inte vara större än drygt två miljarder, vilket gör att den 19:e januari 2038 kommer den hoppa tillbaks till 13:e december 1901. Precis som det förut inte gick att veta vilket sekel man var i, vet man nu inte om man är i spannet 1901 – 2038, eller mellan 2038 och 2175.

Praktiskt nog inträffar det där precis lagom efter att jag själv har gått i pension, så förhoppningsvis kommer jag inte behöva sitta i jour den dagen. Däremot kan det börja få effekter både för mig och alla andra redan nu. Tänk dig att du nästa vecka går till banken för att be om ett 30-årigt bostadslån. När förfaller det? Hmm… Strax före jul, år 1901. Hoppsan.

De Unixsystem som släpps numera (inklusive Linux, sedan ganska länge) kan hantera större tidsintervall, men dessutom så måste man ändra i alla applikationer som använder datumberäkningar. De som har varit ”smarta” och lagrat tiden i en vanlig ”int” istället för det korrekta ”time_t”, inklusive lagringar i databaser, formatteringar och annat, lär ha att göra. Att köra kompilatorn med maximalt med varningar och ha rejäla testsviter gör stor skillnad när man ska ändra en sådan här sak.

Andra bloggar om: , , , , .

Advertisements

januari 16, 2008 - Posted by | problemlösning, teknik

Inga kommentarer ännu.

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s