Functions/Convert-RSCUNIXTime.ps1
################################################ # Function - Convert-RSCUnixTime - Converting time from UNIX to RSC format, only needed for PowerShell version 5 ################################################ Function Convert-RSCUNIXTime { <# .SYNOPSIS Converts the UNIX time format to a PowerShell time format object if needed (I.E older versions of PowerShell) .DESCRIPTION Used to convert the responses from the RSC API whenever it gives a timestamp and PowerShell treats it as a string. .PARAMETER UNIXTime The UNIX time zone format returned by RSC GraphQL API calls. .OUTPUTS Returns an array of all the available information on the GraphQL endpoint in a uniform and usable format. .EXAMPLE Convert-RSCUNIXTime $UNIXTimeUTC Returns the date time in an usable PowerShell object in the correct format. .NOTES Author: Joshua Stenhouse Date: 05/11/2023 #> # Paramater Config Param ($UNIXTime) # Main function #$PSVersion = $PSVersionTable.values | Sort-Object Major -Desc | Where-Object {$_.Major -ne 10} | Select-Object -ExpandProperty Major -First 1 # Checking it hasn't been passed a datetime already (I.E if running a newer version of PowerShell) $ParamType = $UNIXTime.GetType().Name # Passing through or converting depending on outcome IF($ParamType -eq "DateTime") { # Nothing to convert! $UTCTime = $UNIXTime } ELSE { # Attempting to convert manually if not null IF($UNIXTime -ne $null) { $Step1 = $UNIXTime.Replace("T"," ").Replace("Z"," ").TrimEnd();$Step2 = $Step1.Substring(0,$Step1.Length-4);$UTCTime = ([datetime]::ParseExact($Step2,"yyyy-MM-dd HH:mm:ss",$null)) }ELSE{$UTCTime = $null} } Return $UTCTime } |