Petit pense-bête pour les manipulations de date en Bash/shell.
Base
Retourne la date du jour avec les régles de localisation de la machine, par exemple pour une bécane Franco-française :
dateretourne mardi 17 novembre 2009, 06:55:32 (UTC+0100)
l’option -d
Ensuite y’a la paramètre -d assez « marrant » qui permet ce genre de chose
date -d 'now' # retourne mardi 17 novembre 2009, 06:57:53 (UTC+0100) date -d 'yesterday' # retourne lundi 16 novembre 2009, 06:58:32 (UTC+0100) date -d "tomorrow"date -d "year" # retourne mercredi 18 novembre 2009, 06:58:55 (UTC+0100) date -d "days" # retourne mardi 18 novembre 2009, 06:59:15 (UTC+0100) date -d "week" # retourne mardi 24 novembre 2009, 06:59:30 (UTC+0100) date -d "month" # retourne jeudi 17 décembre 2009, 06:59:59 (UTC+0100) date -d "year" # retourn mercredi 17 novembre 2010, 07:03:08 (UTC+0100)
Ensuite on peut utiliser des précisions pour le nombre de jour/semaine/mois/anée
date -d "3 days" # retourne date 'now' + 3 jours date -d "2 week" # Retourne la date dans 2 semaines
Bon etc, ça marche pour jour, semaine, mois année, ensuite on peut ajouté le mot ago pour afficher la date passé.
date -d "1 month ago" # retourne la date il y a un mois
Pareil, ça marche pour les jours, semaines, mois et années
Mettre en forme la date
Enfin (je vais terminer la dessus), on peut mettre en forme la date un peu à la manière de date() en php
date "+%Y-%m-%d" # retourn ANNEE-MOIS-JOUR
Notez que la chaine de caractère (pattern de format) doit être rédigée de façon assez précise, elle commence par un ‘+‘ et les caractères de substitutions sont toujours précédés d’un ‘%‘.
Pour obtenir par exemple en timestamp au format mysql ça donne
date "+%Y-%m-%d %H:%M:%S"
Voici un petit tour rapide des patterns supportés (les principaux)
Année
- %Y : Année sur 4 chiffres
- %C : Le siècle (en gros les 2 premiers chiffres de l’année, si elle a 4 chiffres…)
Mois
- %b : Nom du mois sur 3 lettres
- %B : Nom du mois
- %m : Numéro du mois sur 2 chiffres
Jours
- %a : Nom du jour de la semaine sur 3 lettres
- %A : Nom du jour de la semaine
- %d : Numéro du jour dans le mois sur 2 chiffres
- %j : Numéro du jour dans l’ année
Heures
- %H : Heures sur 24 heures
- %I : Heures sur 12 heures
Heures
- %M : Minutes sur 2 chiffres
Secondes
- %S : Secondes sur 2 chiffres
Raccourcis
- %F : YYYY-MM-DD
- %T : HH-MM-SS
Voilà pour les principaux patterns, un man date vous les détailleras tous
Pour finir
Sachez enfin qu’un cumule de -d « durée » et de « +%PATTERN » est possible et cela s’avère parfois assez pratique :
date -d "2 week" "+%F %T" # Retourne un timestamp MySQL du jour qu'il sera dans 2 semaines
Pour plus de détails, je le rappelle : man date
Cordialement
Pas de commentaire »
Pas encore de commentaire.
Flux RSS des commentaires de cet article. TrackBack URL