This will be a quick one. While working with a platform for which I am writing a PowerShell module, I began to frequently interact with Unix timestamps, and needed to be able to convert them to workable DateTime objects. While Microsoft.PowerShell.Utility includes a variety of helpful cmdlets to conver between data formats, it does not offer a way to convert between these two ways of expressing a datetime.
In an attempt to make my life easier during the development of this little PowerShell module, I knocked up these quick and dirty functions for use (not in the module, but in my personal PowerShell environment in general).
functionConvertFrom-UnixTimestamp{<#
.SYNOPSIS Converts a Unix timestamp to a DateTime object.
.DESCRIPTION Converts a Unix timestamp to a DateTime object.
.PARAMETER Milliseconds
The Unix timestamp to convert.
.INPUTS String
.OUTPUTS DateTime
.EXAMPLE ConvertFrom-UnixTimestamp -Milliseconds 1747927975516
# Converts the Unix timestamp to a DateTime object.
# Example output:
# Thursday, May 22, 2025 8:32:55 AM
#>param([Parameter(Mandatory=$true,ValueFromPipeline=$true)][string]$Milliseconds)begin{}process{$output=([DateTime]::UnixEpoch).AddMilliseconds($Milliseconds).ToLocalTime()Write-Output$output}end{}}
functionConvertTo-UnixTimestamp{<#
.SYNOPSIS Converts a DateTime object to a Unix timestamp.
.DESCRIPTION Converts a DateTime object to a Unix timestamp.
.PARAMETER DateTime
The DateTime object to convert.
.INPUTS DateTime
.OUTPUTS String
.EXAMPLE ConvertTo-UnixTimestamp -DateTime (Get-Date)
# Converts the DateTime object for today's date to a Unix timestamp.
# Example output:
# 1752252878823
#>param([Parameter(Mandatory=$true,ValueFromPipeline=$true)][DateTime]$DateTime)begin{}process{$output=[math]::Round(($DateTime.ToUniversalTime()-[DateTime]::UnixEpoch).TotalMilliseconds)Write-Output$output}end{}}
With PowerShell Core having a focus on being cross-platform, it would seem logical to me that such functionality could be helpful to have. Who knows? Perhaps some day we’ll get some similar functionality.
If you found this helpful, I’d appreciate it if you starred the GitHub Gist. Thank you!