Le bug de l’an 2038 : la limite des timestamps Unix

Le temps ne s’arrête pas. Une façon particulière de le stocker atteint son plus grand nombre positif.

Un compteur dans une boîte limitée

Le temps Unix compte les secondes depuis le 1er janvier 1970 à 00:00:00 UTC, sans compter les secondes intercalaires. Un entier signé sur 32 bits peut aller jusqu’à 2 147 483 647. En secondes Unix, cela correspond au 19 janvier 2038 à 03:14:07 UTC. Une seconde après, la valeur ne tient plus dans cette représentation. La date est ordinaire ; le problème vient de la limite de stockage.

Tous les ordinateurs n’ont pas cette limite

Le problème concerne les systèmes, formats, protocoles ou bases de données qui emploient encore cette représentation limitée. Des types plus larges peuvent représenter les dates suivantes. Mais une application moderne peut échanger avec un ancien composant : vérifier son horloge visible ne suffit pas. Une valeur hors plage peut être refusée, tronquée ou mal interprétée. Dire que tous les appareils reviendront en 1901 ou qu’Internet s’arrêtera est inexact.

Un autre piège : le facteur mille

Secondes et millisecondes sont des unités distinctes. Entrez 2 147 483 647 en millisecondes et vous arrivez en janvier 1970, pas en 2038. Deviner l’unité au nombre de chiffres n’est pas fiable, surtout pour les dates anciennes ou les petites valeurs. Notre outil demande explicitement l’unité. Pour déboguer, notez la valeur, l’unité et le résultat UTC attendu. Cette petite habitude évite beaucoup d’erreurs de date.

Explorez la limite simplement

Essayez 2147483647 puis 2147483648 en secondes. Les résultats doivent être espacés d’une seconde, tous deux en 2038, car cet outil n’est pas limité aux secondes Unix signées sur 32 bits. Cela démontre ce calcul, pas la préparation de tous vos systèmes. Pour évaluer une application, testez son stockage et ses interfaces des deux côtés de la limite, en enregistrant puis relisant les valeurs. L’affichage correct n’est qu’une étape.

Testez votre intuition

Une valeur supérieure à 2 147 483 647 prouve-t-elle que tous les logiciels échoueront en 2038 ?

Sources et lectures

Des explications originales avec des exemples détaillés. Les liens renvoient aux normes et documentations utilisées.

Rechercher des villes et des outils

Saisissez un mot · Échap pour fermer