Private/DateConversion.ps1

function Get-DatePosixMilliseconds {
    [CmdletBinding()]
    param(
        [parameter()]
        [DateTime]$DateTime = (Get-Date)
    )
    $UTCDateTime = Get-Date($DateTime).ToUniversalTime()
    $unixEpochStart = New-Object DateTime 1970, 1, 1, 0, 0, 0, ([DateTimeKind]::Utc)
    [uint64](($UTCDateTime) - $unixEpochStart).TotalMilliseconds
}
function ConvertTo-WindowsTime {
    [OutputType([DateTime])]
    Param(
        # Date in UNIX time
        [Parameter(Mandatory = $true, ValueFromPipeline = $true, HelpMessage = 'Milliseconds.')]
        [uint64]$ticks
    )
    [DateTime]::new(1970, 1, 1, 0, 0, 0, 0, [System.DateTimeKind]::Utc).AddMilliseconds($ticks).ToLocalTime()
}