Comment analyser une date et une heure par ParseExact dans PowerShell

  1. Utilisez la méthode ParseExact pour analyser DateTime dans PowerShell
  2. Utilisez la conversion de type explicite pour analyser DateTime dans PowerShell
  3. Conclusion
Comment analyser une date et une heure par ParseExact dans PowerShell

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 être null 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 :

parseexact datetime powershell - sortie 1

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 :

powershell datetime parseexact - sortie 2

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 :

parseexact datetime powershell - sortie 3

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 :

powershell datetime parseexact - sortie 4

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.

Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Article connexe - PowerShell DateTime