Tutoriaux /

BASH/SHELL : Utilisation de la commande date

Niveau : Novice
Notions : bash ~ commande date ~ shell

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 :

date

retourne 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

Laisser un commentaire