La gestion de la date actuelle est souvent un élément clé dans les scripts PowerShell. Que ce soit pour ajouter un horodatage aux fichiers journaux, contrôler la validité d’un document ou automatiser des processus selon des dates précises, la commande PowerShell Get-Date offre une solution complète. Elle permet non seulement de récupérer la date et l’heure système instantanément, mais aussi de manipuler facilement ces valeurs pour adapter les scripts aux besoins spécifiques. Comprendre ses différentes options et méthodes facilite grandement la programmation PowerShell quotidienne et évite les erreurs fréquentes, notamment lorsque vient le moment de comparer ou de calculer des intervalles entre deux dates.
En explorant les diverses possibilités offertes par cette commande, entre formats variés, conversions et calculs temporels, il devient possible d’automatiser finement des tâches chronodépendantes en entreprise ou lors de projets personnels. Par exemple, un administrateur système peut filtrer efficacement des fichiers plus anciens qu’un certain seuil, ou un développeur peut générer des noms de fichiers horodatés pour sécuriser les sauvegardes. Ce panorama complet des opérations sur la date avec PowerShell améliore la maîtrise des scripts, leur robustesse et leur lisibilité.
L’article en bref
Découvrir comment la commande Get-Date dans PowerShell simplifie la récupération et la manipulation de la date actuelle en script, pour mieux automatiser et structurer vos opérations temporelles.
- Acquérir la date et l’heure courantes : utiliser Get-Date pour récupérer les données du système facilement
- Personnaliser le format d’affichage : appliquer des formats .NET ou UFormat selon le contexte
- Effectuer des calculs sur les dates : additionner ou soustraire jours, mois, années grâce aux méthodes dédiées
- Comparer et manipuler des dates : faciliter les conditions temporelles via des comparaisons directes et conversions
Maîtriser Get-Date, c’est s’approprier un outil fondamental pour automatiser efficacement toute tâche dépendante du temps en PowerShell.
Comment récupérer la date actuelle avec la commande PowerShell Get-Date
La commande Get-Date renvoie par défaut la date et l’heure du système, sous forme d’objet complexe. Cela permet d’accéder directement à des propriétés spécifiques, comme l’année, le mois ou le jour de la semaine. Dans un script, il suffit de saisir Get-Date pour obtenir la date complète au format long, utile notamment pour un horodatage lisible.
Pour illustrer, la commande suivante affichera la date du jour avec l’heure actuelle :
Get-Date
En stockant la sortie dans une variable, on peut manipuler chaque élément indépendamment :
$now = Get-Date Write-Host "Année : $($now.Year) | Mois : $($now.Month) | Jour : $($now.Day)" Write-Host "Jour de la semaine : $($now.DayOfWeek)"
Cela facilite la gestion des opérations temporelles dans les scripts, ainsi que l’intégration avec d’autres commandes ou outils.
Extraire uniquement la date ou l’heure
Dans certains contextes, il peut être utile de n’afficher que la date ou l’heure. La commande propose le paramètre -DisplayHint qui précise cet affichage :
Get-Date -DisplayHint date # Affiche uniquement la date Get-Date -DisplayHint time # Affiche uniquement l’heure
Cela est particulièrement pratique pour personnaliser les logs selon les besoins ou pour extraire rapidement une donnée spécifique dans un script.
Créer une date personnalisée avec Get-Date
Get-Date permet aussi de générer un objet date à partir d’une année, d’un mois ou d’un jour spécifiés, sans passer par une conversion de chaîne de caractères :
Get-Date -Year 2026 -Month 12 -Day 25
Cette flexibilité permet de travailler avec des dates passées, futures ou de tests, facilitant par exemple les calculs de délais ou les comparaisons prévisionnelles.
Personnaliser l’affichage des dates avec différents formats
La gestion des dates en PowerShell rend possible une multitude de mises en forme grâce aux formats .NET et UFormat. Ces deux méthodes permettent d’obtenir la date sous divers aspects, selon le contexte d’utilisation, en transformant l’objet date en simple chaîne de caractères.
Voici un aperçu des principaux formats .NET disponibles :
| Spécificateur | Description |
|---|---|
| dd | Jour du mois, sur deux chiffres |
| MM | Mois sur deux chiffres |
| yyyy | Année sur quatre chiffres |
| dddd | Nom complet du jour de la semaine |
| MMMM | Nom complet du mois |
Pour appliquer un format, il suffit d’utiliser le paramètre -Format :
Get-Date -Format "dddd dd MMMM yyyy" # Exemple : lundi 04 mai 2026
Les formats UFormat, quant à eux, utilisent le symbole % suivi d’une lettre, pour représenter les différents éléments similaires (jour, mois, année).
Formater l’heure système avec Get-Date
Pour afficher l’heure, on peut utiliser notamment :
| Spécificateur | Description |
|---|---|
| HH:mm | Heure en format 24 heures et minutes |
| HH:mm:ss | Heure en format 24 heures avec les secondes |
| hh:mm tt | Heure en format 12 heures avec AM/PM |
On retrouve cette simplicité de personnalisation adaptée à différents scénarios, qu’il s’agisse d’un affichage utilisateur ou d’un traitement en arrière-plan.
Effectuer des calculs simples sur des dates : addition et soustraction
Manipuler des dates dans un script est souvent bien plus qu’une simple lecture. La commande Get-Date permet d’ajouter ou de soustraire des jours, mois ou années par des méthodes intrinsèques comme AddDays(), AddMonths() ou AddYears() :
$aujourdhui = Get-Date $hier = $aujourdhui.AddDays(-1) $demain = $aujourdhui.AddDays(1) $dansTroisMois = $aujourdhui.AddMonths(3) $dansDeuxAns = $aujourdhui.AddYears(2)
Cette approche est fréquemment utilisée pour automatiser la conservation ou la suppression de fichiers selon leur ancienneté, mais aussi pour gérer des échéances et événements futurs.
Principales méthodes pour manipuler les dates en PowerShell
- AddDays() : ajoute ou soustrait un nombre de jours
- AddMonths() : ajoute ou soustrait un nombre de mois
- AddYears() : ajoute ou soustrait un nombre d’années
- AddHours() : modifie les heures
- AddMinutes() : ajuste les minutes
Comparer des dates et calculer l’intervalle entre deux dates
Les objets DateTime obtenus avec Get-Date permettent des comparaisons directes grâce aux opérateurs PowerShell standard comme -lt (inférieur à) ou -gt (supérieur à). Par exemple :
$aujourdhui = Get-Date $autreDate = Get-Date -Date "2026-01-01" # Vérifier si la date est passée if ($aujourdhui -gt $autreDate) { Write-Host "Nous sommes après le 1er janvier 2026" }
Pour mesurer la différence en jours ou heures, on utilise le cmdlet New-TimeSpan en fournissant les deux dates :
$debut = Get-Date $fin = Get-Date -Day 25 -Month 12 $diff = New-TimeSpan -Start $debut -End $fin Write-Host "Jours restants avant Noël : $($diff.Days)"
Cette capacité à évaluer les intervalles temporels est souvent au cœur de règles de gestion ou de filtrages dynamiques.
Exemple avec filtre de fichiers anciens
Dans le cadre d’une maintenance informatique, pour supprimer des fichiers datant de plus de 30 jours, la méthode suivante est couramment utilisée :
$limite = (Get-Date).AddDays(-30) $fichiers = Get-ChildItem "C:Logs" -File | Where-Object { $_.LastWriteTime -lt $limite } Write-Host "Nombre de fichiers à archiver : $($fichiers.Count)"
Cette technique évite de confondre chaînes de caractères et objets DateTime, une erreur très fréquente à éviter en programmation PowerShell.
Convertir une chaîne de caractères en objet DateTime
Les scripts PowerShell doivent parfois traiter des dates fournies sous forme de texte, notamment lors de l’importation de données depuis un fichier CSV. Il est indispensable alors de convertir ces chaînes en dates réelles :
[datetime] "2026-05-04"
Pour des formats spécifiques, la méthode ParseExact offre un contrôle complet sur la conversion :
$dateStr = "04-May-2026" $dateObj = [datetime]::ParseExact($dateStr, "dd-MMM-yyyy", $null)
Cette précision garantit que les scripts fonctionnent correctement quelle que soit la configuration locale de la machine, notamment utile dans des environnements multi-langues.
Les pièges classiques de la manipulation des dates et comment les éviter
Plusieurs erreurs surviennent fréquemment lors de la gestion des dates en PowerShell. Par exemple :
- Confusion entre format texte et objet DateTime : comparer des chaînes au lieu d’objets rend les résultats erronés.
- Problèmes liés aux formats locaux : le même texte « 04/05/2026 » peut être interprété différemment selon les paramètres régionaux (français vs américain).
- Négliger le fuseau horaire : la comparaison ou le stockage de dates sans gestion du temps universel coordonné (UTC) peut provoquer des conflits durant les changements d’heure.
Pour limiter ces risques, utiliser systématiquement des méthodes et castings explicites, ainsi que la conversion vers UTC lorsque l’on manipule des dates entre plusieurs zones est recommandé.
En finalité, la maîtrise de la commande Get-Date s’avère un atout majeur dans la programmation PowerShell, notamment en automatisation où une gestion précise du temps est indispensable. Pour approfondir davantage vos compétences, vous pouvez consulter des ressources dédiées à la personnalisation avancée des environnements avec des fichiers bashrc sous Linux ou encore mieux comprendre certains aspects administratifs liés aux scripts automatisés via une fiche de paie expliquée.
Comment afficher seulement l’heure actuelle avec Get-Date ?
Utilisez le paramètre -DisplayHint time avec la commande Get-Date, par exemple : Get-Date -DisplayHint time. Cela affiche uniquement l’heure du système.
Comment calculer les jours entre deux dates ?
Employez le cmdlet New-TimeSpan en fournissant les deux dates à comparer. La propriété Days du résultat donnera le nombre de jours entre elles.
Est-il possible de comparer des dates sous forme de chaînes de caractères ?
Il est recommandé de convertir les chaînes en objets DateTime avant toute comparaison afin d’éviter des erreurs liées aux formats. Utilisez la conversion directe ou ParseExact.
Comment gérer les dates pour des scripts multi-région ?
Utilisez [datetime]::ParseExact avec CultureInfo.InvariantCulture et privilégiez les conversions en temps universel coordonné (UTC) pour garantir une cohérence entre les zones horaires.




