seabeck.pages.dev

Como extrair data de string em PowerShell?

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.

Pré-requisitos

Passo 1: Identificar o padrão da data na string

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)

Passo 2: Converter as strings encontradas para objetos DateTime

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)"
    }
}

Passo 3: Formatar as datas conforme necessário

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") }

Exemplo Prático

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

Conclusão

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.