Extrair datas de strings em PowerShell pode ser desafiador, especialmente quando os formatos variam. O método mais eficaz é usar expressões regulares combinadas com a função [datetime]::Parse(), garantindo precisão e flexibilidade.
Primeiro, é necessário identificar o formato da data na string. Use expressões regulares para localizar datas em formatos comuns, como dd/MM/yyyy ou MM-dd-yyyy.
$string = "A data de hoje é 15/03/2024 e amanhã será 16/03/2024."
$pattern = "\d{2}/\d{2}/\d{4}"
$matches = [regex]::Matches($string, $pattern)
Após encontrar as datas, converta-as para objetos DateTime usando [datetime]::Parse(). Isso permite manipular e formatar as datas facilmente.
$dates = foreach ($match in $matches) {
try {
[datetime]::Parse($match.Value)
} catch {
Write-Warning "Não foi possível converter: $($match.Value)"
}
}
Com os objetos DateTime, você pode formatar as datas conforme necessário usando o método ToString().
$formattedDates = $dates | ForEach-Object { $_.ToString("yyyy-MM-dd") }
| String de Entrada | Padrão Regex | Datas Extraídas |
|---|---|---|
| A data é 15/03/2024 e o evento é 20/04/2024. | \d{2}/\d{2}/\d{4} | 15/03/2024, 20/04/2024 |
| O prazo é 2024-05-10 e a entrega é 2024-06-15. | \d{4}-\d{2}-\d{2} | 2024-05-10, 2024-06-15 |
Com este método, você automatiza a extração de datas de strings em PowerShell, evitando erros manuais e garantindo precisão, mesmo com formatos variados.