PowerShell:
Analisi di una data da una stringa
Come fare:
PowerShell semplifica l’analisi delle date da stringhe con il suo cmdlet Get-Date
e acceleratore di tipo [datetime]
, che funzionano bene per i formati di data standard. Per stringhe di date più complesse o non standard, si può utilizzare il metodo [datetime]::ParseExact
per specificare il formato esatto.
Usando Get-Date
e [datetime]
:
# Conversione semplice usando Get-Date
$stringDate = "2023-04-01"
$date = Get-Date $stringDate
echo $date
Output dell’esempio:
Sabato, 1 Aprile 2023 00:00:00
# Usando l'acceleratore di tipo [datetime]
$stringDate = "April 1, 2023"
$date = [datetime]$stringDate
echo $date
Output dell’esempio:
Sabato, 1 Aprile 2023 00:00:00
Usando [datetime]::ParseExact
per formati non standard:
Per formati non riconosciuti automaticamente, puoi definire il formato esatto per garantire un’analisi corretta.
$stringDate = "01-04-2023 14:00"
$format = "dd-MM-yyyy HH:mm"
$culture = [Globalization.CultureInfo]::InvariantCulture
$date = [datetime]::ParseExact($stringDate, $format, $culture)
echo $date
Output dell’esempio:
Sabato, 1 Aprile 2023 14:00:00
Sfruttando Librerie di Terze Parti
Sebbene PowerShell sia di per sé piuttosto potente per l’analisi delle date, per scenari molto complessi o funzionalità aggiuntive, potresti esplorare librerie .NET come NodaTime, anche se per molti casi d’uso tipici, le capacità native di PowerShell dovrebbero essere sufficienti.
# Usando NodaTime solo come illustrazione, nota che devi aggiungere la libreria al tuo progetto
# Install-Package NodaTime -Version 3.0.5
# Usando NodaTime per analizzare una data
[string]$stringDate = "2023-04-01T14:00:00Z"
[NodaTime.Instant]::FromDateTimeUtc([datetime]::UtcNow)
[NodaTime.LocalDate]$localDate = [NodaTime.LocalDate]::FromDateTime([datetime]::UtcNow)
echo $localDate
Nota sull’esempio: Il codice sopra è una illustrazione concettuale. Nella pratica, assicurati che NodaTime sia correttamente aggiunto al tuo progetto affinché i tipi e i metodi siano disponibili.