1234567890, un nombre romantique

LiB romantique

La plupart des utilisateurs des systèmes d’exploitation dérivés d’Unix (dont Linux et Mac OS) sont familiarisés avec l’heure Unix, le système de représentation du temps dans ces systèmes.

La représentation en heure Unix d’un instant donnée est le nombre de secondes entre minuit du 1er janvier 1970 et cet instant-la. Au moment où j’écris ce billet, 22h31 du 7 février de 2009, c’est donc 1234002715 en heure Unix.

Certains valeurs d’heure Unix sont bien connus, soit par son importance comme 2147483647, le moment du bug de l’an 2038*, soit par être des valeurs curieux, comme le passage à l’heure Unix 1000000000, arrivé le 9 septembre 2001.

Et c’est sur l’un de ces valeurs curieux que je voulais vous parler aujourd’hui, l’heure Unix 123456789, qui arrivera le jour de la St Valentin prochain, 14 février un peu après minuit, comme vous pouvez vérifier depuis votre ligne de commandes :


horacio@horacio-portable:~$ date -d "2009-02-14 00:31:30" "+%Z: %s"
CET: 1234567890

C’est amusant, pour une fois la St Valentin va avoir une certaine signification :devil_tb:

Trouvé grâce à DespuesDeGoogle.

* Sur la plupart de systèmes, l’heure Unix est stocké sur 32 bits avec signe. Cela fait que la valeur maximale en heure Unix qu’on peut utiliser dans ces systèmes est le 2 147 483 647 (01111111 11111111 11111111 11111111 en binaire), c’est à dire le 19 janvier 2038 à 3 h 14 min 7 s. Cette nuit-là la représentation du temps fera un boucle. Théoriquement, cela posera un problème au moins aussi grand que celui de l’an 2000, et c’est en s’inspirant de celui-là qu’on le connais comme bug de l’an 2038.

Tags: ,

9 commentaires à “1234567890, un nombre romantique”

  1. Bloguer ou ne pas bloguer » D’Unix à U2 Says:

    […] : 1234567890, un nombre romantique ; l’heure Unix pour la St. Valentin. Mais pour vérifier, nada : l’Invite de commande […]

  2. Korben Says:

    Ahaha énorme cette info !! Effectivement, la St Valentin, ça sera la fête des linuxiens amoureux cette année 🙂

  3. Guillaume Says:

    héhé, moi je connaissait cette notation du temps en tant que “Timestamp” en php… ce qui reviens à la même chose puisque cette fonction a comme origine le temps UNIX

    bien vu pour le 1234567890 😉

    mais sait tu ce que les programmeurs comptent faire avant 2038 pour continuer à noter le temps ???

  4. Liens du matin 02/10/2009 « Le Journal de Ray Dacteur Says:

    […] 1234567890, un nombre romantique | LostInBrittany – Le blog d’Horacio Gonzalez […]

  5. Cerudon Says:

    Seul solution : coder ce temps sur un entier 64 bits.

    Soit que tout les ordinateurs aient un processeur 64 bits et un système d’exploitation 64 bits, et surtout que tout les programmes soient réécrit pour prendre en compte une date sur 64 bits.

  6. zeubx1 Says:

    La seule solution c’est le passage en 64bits

  7. geek Says:

    encore un gros truc de geek … ya qu’à regarder Guillaume et Korben ! Ca ce sont des bonnes têtes de Geek ^^

    …hummm mais qu’est ce que je fous là moi … ^^

  8. Aodren Says:

    La commande fonctionne très bien:

    [aodren@localhost ~]$ date -d “2009-02-14 07:47:30” “+%Z: %s”
    CET: 1234594050

  9. LostInBrittany Says:

    Le passage à 64 bits est la solution, oui. Mais comme Cerudon dit, il faut que tout passe à 64 bits, le processeur, le système d’exploitation et tous et chacun des programmes utilisés.

    Heureusement qu’on a vingt ans devant nous pour y parvenir 😉

Leave a Reply