Embauchez-moi

Je suis freelance ! Besoin d'un professionnel du développement web ? Pourquoi ne pas me passer un coup de fil ?

Plus d'infos sur… http://thibault.jouannic.fr

mots-cles : Ingénieur web freelance Symfony eZ Publish Solr

Convertir un timestamp en date en ligne de commande

Il m’arrive souvent de devoir convertir un timestamp unix en une date lisible par un être humain normal. Dans la plupart des langages de programmation moderne, c’est quelque chose de facile. Il existe aussi des convertisseurs sur le web. Seulement, c’est plus rapide de faire ça en shell :

date -d "1970-01-01 GMT+2 + 1220367600 seconds"
->
mardi 2 septembre 2008, 16:58:00 (UTC+0200)

C’est tout. C’est bien pratique, même si ça ne vaut pas Super Timor.


3 Commentaires

  1. Posté le 02/09/2008 à 17:51 | Permalien

    Sinon, y’a date -r 1220367600 ;)

  2. piR
    Posté le 14/04/2011 à 16:12 | Permalien

    date -r 1220367600 ne marche pas chez moi

    $ man date
    -r, –reference=FILE
    display the last modification time of FILE

    $ date -r 1302789628
    date : 1302789628 : Aucun fichier ou dossier de ce type

    $ date –version
    date (GNU coreutils) 8.5

  3. piR
    Posté le 25/07/2011 à 18:11 | Permalien

    Il ne faut pas mettre GMT+2, mais GMT car le timestamp 0 est pour le 1er janvier 1970 à minuit GMT.

    Pas bon :
    $ date ; date -d «  1970-01-01 +`date +%s` seconds  »
    lundi 25 juillet 2011, 18:07:43 (UTC+0200)
    lundi 25 juillet 2011, 17:07:43 (UTC+0200)

    Pour éviter cela, précisez GMT pour la date origine.
    $ date ; date -d «  1970-01-01 GMT +`date +%s` seconds  »
    lundi 25 juillet 2011, 18:09:09 (UTC+0200)
    lundi 25 juillet 2011, 18:09:09 (UTC+0200)