Convertir des dates

Auteur: 
Sébastien Carrillo

C'est souvent utile, alors je partage avec vous deux petits trucs.

D'abord un petit rappel. Unix, et donc Linux, compte le temps en secondes
depuis le 1er janvier 1970. Donc si vous voulez savoir combien de secondes se
sont écoulées, vous faite la commande suivante (il est ven nov 28 11:12:53 EST
2008):

[scarrillo@vercors ~]# date +%s
1227888773

Si vous avez une application qui fait des logs avec des dates marquées en
seconde, comme par exemple squid (je devrais bientôt faire un article à ce
sujet), et que vous voulez savoir à quelle heure a été fait l'accès, voici
comment faire:

Le log de squid ressemble à ça:

1227881891.446 392 127.0.0.1 TCP_MISS/200 8577 GET http://fr-fr.facebook.com/index.php? - DIRECT/69.63.184.15 text/html
1227881892.505 129595 127.0.0.1 TCP_MISS/200 1781 CONNECT ssl.facebook.com:443 - DIRECT/69.63.178.13 -
1227881892.506 149063 127.0.0.1 TCP_MISS/200 2537 CONNECT login.facebook.com:443 - DIRECT/69.63.176.44 -

Le premier champ contient l'heure en secondes. Donc pour convertir:

[scarrillo@vercors ~]# date -d @1227881892
ven nov 28 09:18:12 EST 2008

Sur le même principe, si vous voulez connaitre la date d'hier au format
YYYYMMSS, par exemple pour créer une archive, vous pouvez faire:

[scarrillo@vercors ~]# date --date '1 day ago'
jeu nov 27 11:18:27 EST 2008