Pāriet uz saturu

2038. gada problēma

Vikipēdijas lapa
2038. gada problēmas ilustrācija.

2038. gada problēma var izraisīt dažu datoru programmatūru kļūdas ap 2038. gadu. Šī problēma ietekmē visu programmatūru un sistēmas, kas glabā sistēmas laiku32 bitu veselu skaitli, un interpretē to kā sekunžu skaitu kopš 1970. gada 1. janvāra 00:00:00 pēc UTC. [1] Vēlākais laiks, kuru var parādīt ar šo sistēmu, ir 2038. gada 19. janvāra 03:14:07 pēc UTC. [2] Laiks pēc šī brīža "attīsies" (tiks uzglabāts kā negatīvs skaitlis), un sistēmas 2038. gada 19. janvāra vietā uzrādīs 1901. gada 13. decembri. To izraisa veselu skaitļu pārplūde — skaitītājam beidzas maksimāli izmantojamie skaitļi, tāpēc tas nevis palielina skaitļa vērtību, bet uzrāda maksimālo negatīvo skaitli un sāk palielināt tā vērtību. Tas var radīt problēmas lietotājiem kļūdainu aprēķinu dēļ.

Lai gan lielāko daļu programmu šī problēma ietekmēs 2038. gadā vai tuvu tam, tomēr programmas, kas strādā ar nākotnes datumiem, tā var ietekmēt krietni drīzāk. Piemēram, programmu, kas strādā ar datumiem, kas ir 14 gadus tālā nākotnē, vajadzētu noregulēt ne vēlāk kā par 2024. gadu.

Tā kā lielākā daļa 32-bitu UNIX-veidīgo sistēmu glabā datus tādā formātā, tas tiek saukts par UNIX laiku, 2038. gada problēma visvairāk ietekmēs tieši šīs sistēmas.

  1. «The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition (definition of epoch)». IEEE and The Open Group. The Open Group. 2004. Arhivēts no oriģināla, laiks: 2008. gada 19. decembrī. Skatīts: 2008. gada 7. marts.
  2. Diomidis Spinellis. Code quality: the open source perspective. Effective software development serie in Safari Books Online (illustrated izd.). Adobe Press, 2006. 49. lpp. ISBN 0-321-16607-8.