Ceci est une ancienne révision du document !
Gestion des dates en Powershell
La gestion des dates peut s'avérer crucial. On en a besoin pour dater un fichier, dater des logs, supprimer des anciens fichiers, etc… La commande de gestion de date sous Powershell est Get-Date.
Cette commande renvoie la date actuelle donnée par l'horloge interne de la machine et formatée pour être compréhensible par l'utilisateur.
Formatage
Le formatage peut être modifié avec le paramètre -Format suivant d'un ou plusieurs arguments indiquant le type de formatage.
Ainsi avec :
Get-Date vendredi 1 février 2019 14:05:09
On obtient :
| Argument | Explication | Exemple |
|---|---|---|
d | Affiche le jour du mois sur un ou deux chiffres de 1 à 31 | Get-Date -Format 'd' 1 |
dd | Affiche le jour du mois sur deux chiffres de 01 à 31 | Get-Date -Format 'dd' 01 |
ddd | Affiche le jour de la semaine en abréviation | Get-Date -Format 'ddd' ven. |
dddd | Affiche le jour de la semaine en complet | Get-Date -Format 'dddd' vendredi |
M | Affiche le mois sur un ou deux chiffres de 1 à 12 | Get-Date -Format 'M' 2 |
MM | Affiche le mois sur deux chiffres de 01 à 12 | Get-Date -Format 'MM' 02 |
MMM | Affiche le nom du mois en abréviation | Get-Date -Format 'MMM' fév. |
MMMM | Affiche le nom du mois en complet | Get-Date -Format 'MMMM' février |
yy | Affiche l'année deux chiffres | Get-Date -Format 'yy' 19 |
yyyy | Affiche l'année sur quatre chiffres | Get-Date -Format 'yyyy' 2019 |
h | Affiche l'heure de 1 à 12 | Get-Date -Format 'h' 2 |
hh | Affiche l'heure de 01 à 12 | Get-Date -Format 'hh' 02 |
H | Affiche l'heure de 1 à 24 | Get-Date -Format 'H' 2 |
HH | Affiche l'heure de 01 à 24 | Get-Date -Format 'HH' 02 |
m | Affiche les minutes de 0 à 59 | Get-Date -Format 'm' 5 |
mm | Affiche les minutes de 00 à 59 | Get-Date -Format 'mm' 05 |
s | Affiche les secondes de 0 à 59 | Get-Date -Format 's' 9 |
ss | Affiche les secondes de 00 à 59 | Get-Date -Format 'ss' 09 |
t | Affiche l'heure et les minutes | Get-Date -Format 't' 14:05 |
z | Affiche le fuseau horaire | Get-Date -Format 'z' +1 |
zz | Affiche le fuseau horaire sur deux chiffres | Get-Date -Format 'zz' +01 |
zzz | Affiche le fuseau horaire avec l'intégralité du décalage | Get-Date -Format 'zzz' +01:00 |
D | Affiche la journée complète | Get-Date -Format 'D' vendredi 1 février 2019 |
G | Affiche la journée complète au format numérique suivi de l'heure. Pratique pour les logs. | Get-Date -Format 'G' 01/02/2019 14:05:09 |
On peut aussi renvoyer un formatage UNIX grâce au paramètre -UFormat. Ainsi pour la date vendredi 1 février 2019 14:05:09, le retour de la commande Get-Date -UFormat $Args sera :
| Argument | Explication | Retour |
|---|---|---|
%c | Date et heure en abréviation et américanisée | Get-Date -UFormat "%c" ven. févr. 1 14:05:09 2019 |
%D | Date au format mm/dd/yy | Get-Date -UFormat "%D" 02/01/19 |
%x | Comme %D mais en utilisant les préférences culturelles | Get-Date -UFormat "%x" 01/02/19 |
%C | Affiche le siècle -1 | Get-Date -UFormat "%C" 20 |
%Y ou %G | Affiche l'année complète | Get-Date -UFormat "%Y" 02019 |
%y ou %g | Affiche l'année sur deux chiffres | Get-Date -UFormat "%y" 19 |
%b ou %h | Affiche le mois en abréviation | Get-Date -UFormat "%b" févr. |
%B | Affiche le mois en lettres | Get-Date -UFormat "%B" février |
%m | Affiche le mois en chiffres | Get-Date -UFormat "%m" 02 |
%W ou %U | Affiche le numéro de la semaine de 0 à 52 | Get-Date -UFormat "%W" 4 |
%V | Affiche le numéro de la semaine de 1 à 53 | Get-Date -UFormat "%V" 5 |
%a | Affiche le jour de la semaine en abréviation | Get-Date -UFormat "%a" ven. |
%A | Affiche le jour de la semaine en lettres | Get-Date -UFormat "%A" vendredi |
%u ou %w | Affiche le numéro de jour dans la semaine. La semaine commence le lundi. | Get-Date -UFormat "%u" 5 |
%d | Affiche le numéro du jour dans le mois de 01 à 31 | Get-Date -UFormat "%d" 01 |
%e | Affiche le numéro du jour dans le mois de 1 à 31. Les jours de 1 à 9 seront précédés d'un espace. | Get-Date -UFormat "%e" 1 |
%j | Affiche le numéro du jour dans l'année de 1 à 366 | Get-Date -UFormat "%j" 32 |
%p | Affiche la demi-journée (AM ou PM) si la préférence culturelle l'indique sinon n'affiche rien. | Get-Date -UFormat "%p" PM |
%T | Affiche l'heure complète sur 24h | Get-Date -UFormat "%T" 14:05:09 |
%R | Affiche l'heure sans les secondes sur 24h | Get-Date -UFormat "%R" 14:05 |
%r | Affiche l'heure complète sur 12h si la préférence culturelle l'utilise sinon équivalent à %T | Get-Date -UFormat "%r" 02:05:09 PM |
%Z | Affiche le décalage horaire par rapport à l'UTC | Get-Date -UFormat "%Z" +01 |
%H ou %k | Affiche l'heure uniquement sur 24h | Get-Date -UFormat "%H" 14 |
%I ou %l | Affiche l'heure uniquement sur 12h | Get-Date -UFormat "%I" 02 |
%M | Affiche les minutes | Get-Date -UFormat "%M" 05 |
%S | Affiche les secondes | Get-Date -UFormat "%T" 09 |
Évidemment, les arguments de -Format ou de -UFormat peuvent être ajoutés les uns aux autres mais -Format et -UFormat ne doivent pas être mélangés. Par exemple :
Get-Date vendredi 1 février 2019 14:05:09 Get-Date -Format 'hh:mm:ss dd/MM/yy' 14:05:09 01/02/19 Get-Date -UFormat "%d-%m-%Y %R" 01-02-19 14:05

Discussion