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écutionGet-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.
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ètre
Format
.
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ètreUFormat
est 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 Y
caractè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
.
Laisser un commentaire