git/Get-AadDateTime.psm1
<# .SYNOPSIS Azure AD uses the UTC time (Coordinated Universal Time) and Universal Sortable DateTime Pattern. .DESCRIPTION Azure AD uses the UTC time (Coordinated Universal Time) and Universal Sortable DateTime Pattern. UTC is the worlds synchronized time and set to the GMT time zone. Universal Sortable DateTime Pattern looks like this: yyyy-MM-dd'T'HH:mm:ss.SSSZ .PARAMETER DateTime Specify DateTime you want to convert to UTC .PARAMETER AddDays Add or subtract days from current DateTime or specified DateTime .PARAMETER AddHours Add or subtract hours from current DateTime or specified DateTime .PARAMETER AddMinutes Add or subtract minutes from current DateTime or specified DateTime .EXAMPLE Get-AadDateTime Get-AadDateTime -DateTime "01/20/2019" Get-AadDateTime -AddDays 7 -AddHours 12 -AddMinutes 30 Get-AadDateTime -DateTime "01/20/2019" -AddDays -7 .NOTES General notes #> function Get-AadDateTime { param ( [Parameter( mandatory=$false, ValueFromPipeline = $true)] $DateTime, $AddDays, $AddHours, $AddMinutes ) if ($DateTime) { $date = (Get-Date $DateTime).ToUniversalTime() } else { $date = (Get-Date).ToUniversalTime() } if ($AddDays) { $date = $date.AddDays($AddDays) } if ($AddHours) { $date = $date.AddHours($AddHours) } if ($AddMinutes) { $date = $date.AddMinutes($AddMinutes) } return (Get-Date $date -Format o) } <# .SYNOPSIS Convert the long number format from JWT tokens to UTC .DESCRIPTION Convert the long number format from JWT tokens to UTC For example convert '1557162946' to '2019-05-06T22:15:46.0000000Z' .PARAMETER JwtNumberDateTime This is the JWT number format (i.e. 1557162946) .EXAMPLE Convert-AadJwtTime 1557162946 .NOTES General notes #> function Convert-AadJwtTime { Param ( [Parameter(ValueFromPipeline = $true,Mandatory=$true)] [string] $JwtDateTime ) $date = (Get-Date -Date "1/1/1970").AddSeconds($JwtDateTime) return $date } |