DrJekyll_XYZ
DrJekyll_XYZ

Reputation: 15

Converting Date string to datetime in powershell

I'm having trouble figuring the cleanest way to convert a date from one format to the other.

The dates are formatted "Jul 29th, 2021" and I cant change this in the source as its a system output. When I try to convert to datetime it isn't valid.

if anyone has any idea id appreciate it. An example of one of the things i tried is below

    $date = "Jul 29th, 2021"
    $testConversion = [datetime]$date
    $testConversion

Upvotes: 1

Views: 1441

Answers (1)

Theo
Theo

Reputation: 61028

Because you can have strings like th, st, nd or rd in there, always followed by a comma, the best thing to do is to use a regex -replace on these first and next use [datetime]::PareseExact().

To demonstrate:

$dates = 'Jul 29th, 2021', 'Aug 1st, 2021', 'Sep 2nd, 2021', 'Oct 3rd, 2021'

foreach ($date in $dates) {
    [datetime]::ParseExact(($date -replace '((th|st|nd|rd),)?'), 'MMM d yyyy', [cultureinfo]::InvariantCulture)
}

If your culture (locale) is already set to en-US, you can set the third parameter to $null

Upvotes: 2

Related Questions