Comment analyser une date et une heure par ParseExact dans PowerShell
-
Utilisez la méthode
ParseExact
pour analyserDateTime
dans PowerShell -
Utilisez la conversion de type explicite pour analyser
DateTime
dans PowerShell - Conclusion

Tout en travaillant avec des dates sur PowerShell, il y a des moments où vous aurez besoin de convertir la chaîne de date en un objet DateTime
. Vous ne pouvez pas utiliser des chaînes de date pour effectuer des opérations DateTime
; vous aurez besoin de l’objet DateTime
.
Cette conversion est cruciale car les chaînes de date à elles seules ne suffisent pas pour effectuer des opérations DateTime
. Notre tutoriel est conçu pour combler cette lacune en fournissant des conseils complets sur la manière d’analyser et de convertir des chaînes au format DateTime
dans PowerShell.
Utilisez la méthode ParseExact
pour analyser DateTime
dans PowerShell
La méthode ParseExact
de la classe DateTime
convertit la chaîne de date et d’heure en format DateTime
. Le format d’un motif de chaîne de date et d’heure doit correspondre au format spécifié de l’objet DateTime
.
La syntaxe pour ParseExact
est la suivante :
[datetime]::ParseExact(string, format, provider)
Paramètres :
string
: La date et l’heure au format chaîne que vous souhaitez convertir.format
: Le spécificateur de format exact qui définit le format attendu de la chaîne.provider
: Un objet qui fournit des informations sur le formatage spécifique à la culture. Cela peut êtrenull
si vous utilisez la culture actuelle.
Analyse simple de la date
L’exemple suivant convertit la chaîne de date en un objet DateTime
à l’aide de la méthode ParseExact
.
$dateString = '24-Jan-2024'
$format = 'dd-MMM-yyyy'
$culture = $null # Using the current culture
# Parsing the date
$parsedDate = [datetime]::ParseExact($dateString, $format, $culture)
# Displaying the result
Write-Host "Parsed Date: $parsedDate"
Dans ce code, nous définissons d’abord une chaîne de date 24-Jan-2024
, qui représente une date dans un format jour-mois-année avec un nom de mois abrégé. Nous spécifions ce format par le spécificateur de format dd-MMM-yyyy
.
La variable $culture
est définie sur $null
, ce qui indique à PowerShell d’utiliser le paramètre culture actuel du système pour analyser la date.
La fonction principale ici est [datetime]::ParseExact($dateString, $format, $culture)
, qui analyse la $dateString
selon le $format
que nous avons spécifié. Après l’analyse, la chaîne est convertie en un objet DateTime
, que nous stockons dans la variable $parsedDate
.
Enfin, nous utilisons Write-Host
pour afficher la date analysée. C’est une démonstration simple mais efficace de l’utilisation de ParseExact
dans un scénario réel.
Sortie :
Cette sortie montre l’objet DateTime
qui a été créé à partir de la chaîne, incluant l’heure réglée à minuit (00:00:00
) par défaut, car aucune heure n’a été spécifiée dans la chaîne d’entrée.
Utiliser une culture spécifique
Utiliser une culture spécifique avec ParseExact
est essentiel lorsque vous traitez des chaînes de date qui sont formatées selon les conventions d’une culture différente de celle du paramètre système actuel. Cette approche prévient une mauvaise interprétation des dates, comme confondre le mois et le jour dans les formats MM/dd/yyyy
et dd/MM/yyyy
.
Voici un exemple simple :
$dateString = '23/01/2024'
$format = 'dd/MM/yyyy'
$culture = [Globalization.CultureInfo]::CreateSpecificCulture('fr-FR')
# Parsing the date
$parsedDate = [datetime]::ParseExact($dateString, $format, $culture)
# Displaying the result
Write-Host "Parsed Date: $parsedDate"
Dans cet extrait de code, nous visons à analyser une chaîne de date qui suit le format de date français dd/MM/yyyy
. Nous définissons d’abord la chaîne de date 23/01/2024
.
Remarquez que le format dd/MM/yyyy
pourrait facilement être confondu avec le format MM/dd/yyyy
utilisé aux États-Unis. Pour interpréter correctement la date comme étant le 23 janvier et non le 1er mars, nous spécifions la culture française ('fr-FR')
.
La variable $culture
est instanciée en utilisant [Globalization.CultureInfo]::CreateSpecificCulture('fr-FR')
, qui prépare le contexte culturel pour notre opération d’analyse. Nous appelons ensuite [datetime]::ParseExact($dateString, $format, $culture)
pour analyser la chaîne de date.
Enfin, nous utilisons Write-Host
pour afficher la date analysée, qui illustre comment la chaîne d’entrée est correctement interprétée dans le contexte de la culture spécifiée.
Sortie :
Cette sortie démontre le succès de l’analyse de la chaîne de date dans le contexte de la culture française. La date est correctement comprise comme étant le 23 janvier 2024, sans être mal interprétée en raison d’un ordre mois-jour différent.
Analyse avec Heure
Dans PowerShell, gérer efficacement les dates et les heures est une compétence cruciale, surtout lorsqu’il s’agit d’analyser des chaînes qui incluent à la fois des composants de date et d’heure. La méthode ParseExact
de la classe DateTime
est douée pour interpréter de telles chaînes, à condition que le format soit précisé avec précision.
Parlons d’analyser une chaîne datetime qui inclut à la fois la date et l’heure :
$dateTimeString = '2024-01-23 14:30'
$format = 'yyyy-MM-dd HH:mm'
$provider = $null # Opting for the invariant culture
# Parsing the datetime
$parsedDateTime = [datetime]::ParseExact($dateTimeString, $format, $provider)
# Displaying the result
Write-Host "Parsed DateTime: $parsedDateTime"
Dans notre exemple, nous traitons une chaîne datetime 2024-01-23 14:30
, formatée selon une norme internationale (année-mois-jour et heure en 24 heures). Nous définissons soigneusement le $format
à yyyy-MM-dd HH:mm
pour correspondre à cette structure.
Nous choisissons $null
pour le $provider
, signifiant notre utilisation de la culture invariante. Cette approche est typique lorsque le format datetime est standard et non dépendant de la culture.
Le moment crucial est lorsque nous exécutons [datetime]::ParseExact($dateTimeString, $format, $provider)
, transformant la chaîne en un objet DateTime
qui incarne à la fois la date et l’heure de la chaîne.
Sortie :
Ce résultat illustre efficacement que notre chaîne d’entrée a été correctement analysée en un objet DateTime
, capturant à la fois les composantes de date et d’heure.
Utilisez la conversion de type explicite pour analyser DateTime
dans PowerShell
Vous pouvez également convertir la chaîne d’une date et d’heure au format DateTime
dans PowerShell.
En utilisant cette syntaxe, vous pouvez convertir une chaîne en objet DateTime
.
[DateTime]string
L’exemple suivant convertit la représentation en chaîne d’une date et d’une heure en l’objet DateTime
à l’aide de l’expression de conversion.
$strDate = "2022-06-11 09:22:40"
[DateTime]$strDate
Dans notre extrait de code PowerShell, nous assignons la chaîne "2022-06-11 09:22:40"
à la variable $strDate
. Cette chaîne représente une date et une heure dans un format standard.
Après cela, nous effectuons une conversion de type en un objet DateTime
en utilisant [DateTime]$strDate
.
Sortie :
Avec l’objet DateTime
, vous devriez être capable d’effectuer toutes les opérations DateTime
. Nous espérons que ce tutoriel vous aide à comprendre comment convertir des chaînes au format DateTime
dans PowerShell.
Conclusion
Tout au long de ce tutoriel, nous avons exploré les diverses capacités de PowerShell dans la gestion des conversions DateTime
, en nous concentrant sur la méthode ParseExact
et sa polyvalence dans l’analyse des chaînes en objets DateTime
. Nous avons démontré comment gérer des formats de date simples, intégrer des contextes culturels spécifiques et analyser des chaînes qui incluent à la fois des composants de date et d’heure.
De plus, nous avons approfondi la technique simple mais efficace de conversion de type explicite, fournissant une méthode rapide pour les formats de date standard. Nos exemples ont montré l’importance de comprendre et d’appliquer correctement différentes méthodes d’analyse afin d’assurer une manipulation précise et efficace des dates-heures dans les scripts PowerShell.