datetimepowershellutc

Creating a DateTime object with a specific UTC DateTime in PowerShell


I'm trying to create a DateTime object with a specific UTC timestamp in PowerShell. What's the simplest way to do this?

I tried:

Get-Date
    -Format (Get-Culture).DateTimeFormat.UniversalSortableDateTimePattern
    -Date "1970-01-01 00:00:00Z"

but I get this output:

1969-12-31 19:00:00Z

It's a few hours off. Where's my lapse in understanding?


Solution

  • The DateTime object itself is being created with the proper UTC time. But when PowerShell prints it out it converts it to my local culture and time zone, thus the difference.

    Proof:

    $UtcTime = Get-Date -Date "1970-01-01 00:00:00Z"
    $UtcTime.ToUniversalTime()