In PowerShell, how do I convert DateTime to UNIX time? In PowerShell, how do I convert DateTime to UNIX time? powershell powershell

In PowerShell, how do I convert DateTime to UNIX time?


PS H:\> (New-TimeSpan -Start $date1 -End $date2).TotalSeconds1289923177.87462

New-TimeSpan can be used to do that. For example,

$date1 = Get-Date -Date "01/01/1970"$date2 = Get-Date(New-TimeSpan -Start $date1 -End $date2).TotalSeconds

Or just use this one line command

(New-TimeSpan -Start (Get-Date "01/01/1970") -End (Get-Date)).TotalSeconds


With .NET Framework 4.6 you can use ToUnixTimeSeconds method of DateTimeOffset class:

[DateTimeOffset]::Now.ToUnixTimeSeconds()$DateTime = Get-Date #or any other command to get DateTime object([DateTimeOffset]$DateTime).ToUnixTimeSeconds()


As mentioned, the UNIX Epoch is January 1st, 1970 at 12:00 AM (midnight) UTC.To get the current seconds-since-the-epoch in UTC in a whole-number I use this 80-character one-liner

$ED=[Math]::Floor([decimal](Get-Date(Get-Date).ToUniversalTime()-uformat "%s"))

The code above is PowerShell 2.0 compliant & rounds-down (to ensure consistent behavior w/ UNIX)