PowerShell:
Analyser une date depuis une chaîne de caractères
Comment faire :
PowerShell rend l’analyse des dates à partir de chaînes de caractères simple avec son applet de commande Get-Date
et l’accélérateur de type [datetime]
, qui fonctionnent bien pour les formats de date standard. Pour les chaînes de dates plus complexes ou non standard, la méthode [datetime]::ParseExact
peut être utilisée pour spécifier le format exact.
Utilisation de Get-Date
et [datetime]
:
# Conversion simple en utilisant Get-Date
$stringDate = "2023-04-01"
$date = Get-Date $stringDate
echo $date
Exemple de sortie :
Samedi 1 avril 2023 00:00:00
# Utilisation de l'accélérateur de type [datetime]
$stringDate = "1 avril 2023"
$date = [datetime]$stringDate
echo $date
Exemple de sortie :
Samedi 1 avril 2023 00:00:00
Utilisation de [datetime]::ParseExact
pour des formats non standard :
Pour les formats non automatiquement reconnus, vous pouvez définir le format exact pour garantir un parsing correct.
$stringDate = "01-04-2023 14:00"
$format = "dd-MM-yyyy HH:mm"
$culture = [Globalization.CultureInfo]::InvariantCulture
$date = [datetime]::ParseExact($stringDate, $format, $culture)
echo $date
Exemple de sortie :
Samedi 1 avril 2023 14:00:00
Tirer parti des bibliothèques tierces
Bien que PowerShell soit en soi assez puissant pour l’analyse des dates, pour des scénarios très complexes ou des fonctionnalités supplémentaires, vous pourriez explorer des bibliothèques .NET telles que NodaTime, bien que pour de nombreux cas d’utilisation typiques, les capacités natives de PowerShell suffiront.
# Utilisation de NodaTime juste comme illustration, notez que vous devez ajouter la bibliothèque à votre projet
# Install-Package NodaTime -Version 3.0.5
# Utilisation de NodaTime pour analyser une date
[string]$stringDate = "2023-04-01T14:00:00Z"
[NodaTime.Instant]::FromDateTimeUtc([datetime]::UtcNow)
[NodaTime.LocalDate]$localDate = [NodaTime.LocalDate]::FromDateTime([datetime]::UtcNow)
echo $localDate
Note de l’exemple : Le code ci-dessus est une illustration conceptuelle. En pratique, assurez-vous que NodaTime est correctement ajouté à votre projet pour que les types et méthodes soient disponibles.