PowerShell peut faire beaucoup de choses et, comme tout bon langage de programmation, il peut faire à peu près tout ce que vous voulez avec les dates. En utilisant la commande PowerShell Get-Date et d’autres techniques, vous pouvez trouver la date d’aujourd’hui, la date de demain, les dates de format et bien plus encore.

dans cet article, vous allez tout apprendre sur les dates et PowerShell!,

table des matières

conditions préalables

pour suivre les exemples de cet article, veuillez vous assurer que les conditions préalables suivantes sont remplies à l’avance:

  • Windows PowerShell v5 ou supérieur – même si vous utilisez une version antérieure, tous les exemples fonctionneront probablement correctement.

trouver la Date actuelle avec PowerShell

l’un des moyens les plus simples de découvrir la date actuelle avec PowerShell consiste à utiliser l’applet de commandeGet-Date. Cette commande affiche la date et l’heure comme indiqué ci-dessous.,

PS> Get-DateSunday, November 22, 2020 1:25:57 AM

par défaut,Get-Date semble ne renvoyer que la date et l’heure actuelles mais, en réalité, il renvoie beaucoup plus d’informations. Pour trouver ces informations, dirigez la sortie vers l’applet de commande Format-List comme indiqué ci-dessous.

Vous pouvez également utiliser la balise Get-Member applet de commande pour trouver toutes les propriétés de l’objet en cours d’exécution Get-Date | Get-Member -MemberType Properties également.,

Si vous cochez le type de l’objet Get-Date retourne, vous remarquerez qu’il est un System.DateTime type d’objet. Cette classe est ce qui expose les différentes propriétés et méthodes que vous voyez. Vous pouvez découvrir son type d’objet en utilisant Get-Member ou en utilisant le GetType() comme indiqué ci-dessous.

PS> (Get-Date).GetType().FullNameSystem.DateTime

Une fois que vous voyez toutes les propriétés disponibles, vous pouvez les référencer avec la notation par points comme indiqué ci-dessous.,

PS> (Get-Date).Year2020PS> (Get-Date).DayOfWeekSundayPS> (Get-Date).Month11PS> (Get-Date).DayOfYear327

la notation par points est-elle un peu trop” devvy  » pour vous? Si c’est le cas, vous pouvez également utiliser le paramètre DisplayHint pour obtenir le même résultat.

Get-Date est le moyen le plus simple pour trouver la date actuelle et divers attributs, mais vous pouvez faire tellement plus!

arithmétique de Date avec PowerShell

disons que vous devez connaître la date et / ou l’heure d’un certain nombre de jours, d’années ou de minutes dans le passé ou dans le futur. Vous pouvez trouver ces informations en utilisant des méthodes.,

Utilisation DateTime Méthodes

Le System.DateTime objet Get-Date retourne a différentes méthodes que vous pouvez invoquer pour ajouter ou supprimer des morceaux de temps. Si vous exécutez Get-Date | Get-Member, vous verrez les différentes méthodes qui commencent par Add.

AddDays Method datetime AddDays(double value)AddHours Method datetime AddHours(double value)AddMilliseconds Method datetime AddMilliseconds(double value)AddMinutes Method datetime AddMinutes(double value)AddMonths Method datetime AddMonths(int months)AddSeconds Method datetime AddSeconds(double value)AddTicks Method datetime AddTicks(long value)AddYears Method datetime AddYears(int value)

Vous pouvez appeler chacune de ces méthodes pour rechercher une date/heure dans le futur ou dans le passé. Ci-dessous, vous verrez quelques exemples d’appel de chacune de ces méthodes et de leur sortie.,

en utilisant New-Timespan

Que Faire si vous vouliez connaître la différence entre deux dates; pas simplement ajouter un nombre spécifique de morceaux de temps? Une façon de le faire est d’utiliser l’applet de commande New-Timespan. L’applet de commande New-Timespan génère des objets TimeSpan qui représentent des différences de date/heure ou des portées.

Utilisation de la balise New-TimeSpan applet de commande en fournissant un Start et End date/heure en tant que paramètres., Par exemple, si vous souhaitez trouver la différence entre le 23 novembre 2020 à minuit et le 31 décembre 2020 à minuit, vous pouvez utiliser l’extrait de code suivant.

en utilisant les objetsTimeSpan, vous pouvez trouver des différences de date / heure dans à peu près n’importe quel incrément que vous souhaitez.

comparaison des Dates

non seulement vous pouvez trouver des différences de dates et d’heures, mais vous pouvez également les comparer en utilisant des opérateurs PowerShell standard. PowerShell sait quand une date est « moins” (antérieure) ou « supérieure” (plus tard) une autre date.,

pour comparer les dates, créez simplement deux objets DateTime en utilisant Get-Date ou peut-être en lançant des chaînes avec puis en utilisant des opérateurs PowerShell standard comme lt ou gt.

Vous pouvez voir un exemple simple de comparaison des dates ci-dessous.

#Declaring the datePS> $Date1 = (Get-Date -Month 11 -Day 14 -Year 2020)PS> $Date2 = Get-DatePS> $Date1 -lt $Date2True

conversion de Chaînes en objets DateTime

PowerShell peut également afficher des dates dans différents formats., Par exemple, supposons que vous ayez un fichier CSV ou une feuille de calcul avec différentes dates définies dans le format que vous voyez ci-dessous dans la colonne date_time_utc. Le format est actuellement YYYY-MM-DDThh:mm:ss.0000000Z.

Vous souhaitez analyser ce fichier et de trouver toutes les lignes avec une date de sept jours ou plus.

Format de la Date Exemple

PowerShell, par défaut, ne sait pas que 2020-09-07T13:35:08.4780000Z est une date et une heure; il pense simplement que c’est une simple chaîne de caractères., Pour que PowerShell comprenne, vous devez d’abord le convertir en un objet DateTime comme Get-Date renvoie.

pour convertir une chaîne en un objetDateTime, préfacer la chaîne (ou la variable) avec. Lorsque vous faites cela, PowerShell tente d’interpréter la chaîne comme une date et une heure, puis vous offre toutes les propriétés et méthodes disponibles sur ce type d’objet.,

PS> $Date = "2020-09-07T13:35:08.4780000Z"PS> $DateMonday, September 07, 2020 1:35:08 PM

PowerShell Date Formatting

maintenant que vous connaissez les méthodes de base d’utilisation des dates, il est temps d’approfondir le sujet. Jouons un peu plus en utilisant différents formats pour afficher les dates.

Chaque fois que vous exécutez Get-Date, vous verrez une sortie comme le Monday, September 07, 2020 1:35:08 PM. Cette sortie est en fait un objetDateTime avec des propriétés et des méthodes; pas une simple chaîne., Mais, vous pouvez convertir cet objetDateTime en chaîne et le représenter différemment en utilisant différentes méthodes de formatage de date.

DateTime Méthodes

Une façon de changer la façon dont un DateTime objet est affiché est par l’utilisation de méthodes sur le DateTime objet., La balise DateTime objet a quatre méthodes que vous pouvez utiliser pour modifier la mise en forme:

  • ToLongDateString()
  • ToShortDateString()
  • ToLongTimeString()
  • ToShortTimeString()

Vous pouvez voir un exemple d’utilisation de la ToShortDateString() et ToShortTimeString() méthodes ci-dessous.,

PS> $Date = $DatePS> $date.ToShortDateString() + " " + $date.ToShortTimeString()9/7/2020 7:05 PM

Le Paramètre de Format

Une façon de changer le format de date des DateTime objet est à l’aide de Get-Date pour générer l’objet et le Format paramètre pour changer le format. Le paramètreFormat accepte une chaîne de caractères représentant chacun l’apparence d’une chaîne date/heure.

Vous pouvez voir quelques exemples de caractères que vous pouvez utiliser avec la balise Format paramètre.,

consultez la documentation Microsoft pour une ventilation complète de tous les caractères que vous pouvez utiliser avec le paramètreFormat.

Vous allez voir que dès que vous utilisez la balise Format paramètre Get-Date ne renvoie plus un DateTime objet mais maintenant, les chaînes de caractères une chaîne de caractères.,

PS> (Get-Date -Format D).GetType().FullNameSystem.String

Le UFormat Paramètre

Similaire à la balise Format paramètre, vous avez également un UFormat paramètre de la balise Get-Date applet de commande. Le paramètreUFormat vous permet de définir des formats de date en utilisant le formatage de date UNIX.

le paramètreUFormatest similaire au paramètreFormat en ce sens que vous pouvez combiner des caractères de format de date pour modifier la façon dont la date est renvoyée sous forme de chaîne. Par exemple, essayez les formats suivants et voyez ce qui est retourné.,

PS> Get-Date -UFormat %APS> Get-Date -UFormat %bPS> Get-Date -UFormat %B

Vous pouvez également combiner ces caractères de format de date. L’extrait de code ci-dessous utilise la balise d, m, et Ycaractères à renvoyer la date dans le format dd-mm-yyyy and utilise la balise r caractère de retour à l’heure au format 12 heures dans le fuseau horaire t caractère.

PS> Get-Date -UFormat "%d-%m-%Y %r %Z"22-11-2020 06:10:55 PM +05

consultez la documentation Microsoft pour une ventilation complète de tous les caractères que vous pouvez utiliser avec le paramètreUFormat.