Functions/ConvertFrom-UnixTimestamp.ps1
|
Function ConvertFrom-UnixTimestamp { <# .SYNOPSIS Converts Unix timestamps to DateTime objects .DESCRIPTION This function converts Unix epoch timestamps (seconds or milliseconds since January 1, 1970) to PowerShell DateTime objects. Supports both seconds-based and milliseconds-based Unix timestamps. .PARAMETER Seconds Unix timestamp in seconds since January 1, 1970 .PARAMETER Milliseconds Unix timestamp in milliseconds since January 1, 1970 .EXAMPLE ConvertFrom-UnixTimestamp -Seconds 1609459200 Converts the Unix timestamp to a DateTime object representing 2021-01-01 00:00:00 .EXAMPLE ConvertFrom-UnixTimestamp -Milliseconds 1609459200000 Converts the Unix timestamp in milliseconds to a DateTime object #> [CmdletBinding()] param( [Parameter(Mandatory, ParameterSetName = "Seconds")] [ValidateNotNullOrEmpty()] [string]$Seconds, [Parameter(Mandatory, ParameterSetName = "Milliseconds")] [ValidateNotNullOrEmpty()] [string]$Milliseconds ) IF($Seconds) { # .NET alternative: [DateTimeOffset]::FromUnixTimeSeconds([int64]$Seconds).DateTime (Get-Date -Date "01/01/1970").AddSeconds($Seconds) } IF($MilliSeconds) { # .NET alternative: [DateTimeOffset]::FromUnixTimeMilliseconds([int64]$MilliSeconds).DateTime (Get-Date -Date "01/01/1970").AddMilliseconds($MilliSeconds) } } |