Das Verstehen und die Arbeit mit Epoch-Zeit in PowerShell ist unerlässlich, wenn es um Datums- und Zeitoperationen in Szenarien wie JWT-Token, Assertions oder Systemprotokollen geht. Diese Anleitung zeigt anhand von Beispielen, wie man Epoch-Zeit bearbeitet und mit PowerShell in menschenlesbare Formate umwandelt.
Was ist Epoch-Zeit?
Epoch-Zeit, auch bekannt als Unix-Zeit, POSIX-Zeit oder Unix-Zeitstempel, ist die Anzahl der Sekunden, die seit dem 1. Januar 1970 (Mitternacht UTC/GMT) vergangen sind, ohne Schaltsekunden. Sie wird in der Programmierung und in Systemen häufig als Standarddarstellung der Zeit verwendet.
In JWT-Token wird Epoch-Zeit häufig für Claims wie iat (ausgestellt am), nbf (nicht vor) und exp (Ablauf) verwendet. Unten sehen Sie ein Beispiel für Epoch-Zeit in einem JWT-Token:
{
"typ": "JWT",
"alg": "RS256",
"x5t": "3PaK4EfYBNQu3CtjYsa3YmhqQ5E0",
"kid": "3PaK4EfYBNQu3CtjYsa3YmhqQ5E0",
"aud": "00000003-0000-0000-c000-000000000000",
"iss": "https://sts.windows.net/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/",
"iat": 1729784492,
"nbf": 1729784492,
"exp": 1729787119
}
Arbeiten mit Datum und Uhrzeit in PowerShell
Aktuelles Datum und aktuelle Uhrzeit in UTC abrufen
Um das aktuelle Datum und die aktuelle Uhrzeit in UTC abzurufen:
$utc = (Get-Date).ToUniversalTime()
In das ISO-8601-Standardformat umwandeln
Um das UTC-Datum in das ISO-8601-Format umzuwandeln:
Get-Date ((Get-Date).ToUniversalTime()) -Format o
Zeit hinzufügen und abziehen
Sie können mit den folgenden Befehlen in PowerShell Zeit zum aktuellen Datum hinzufügen oder davon abziehen:
Zeit hinzufügen
Get-Date ($utc).AddYears(1) -Format o
Get-Date ($utc).AddMonths(1) -Format o
Get-Date ($utc).AddDays(1) -Format o
Get-Date ($utc).AddHours(1) -Format o
Get-Date ($utc).AddMinutes(1) -Format o
Get-Date ($utc).AddSeconds(1) -Format o
Zeit abziehen
Get-Date ($utc).AddYears(-1) -Format o
Get-Date ($utc).AddMonths(-1) -Format o
Get-Date ($utc).AddDays(-1) -Format o
Get-Date ($utc).AddHours(-1) -Format o
Get-Date ($utc).AddMinutes(-1) -Format o
Get-Date ($utc).AddSeconds(-1) -Format o
Epoch-Zeit in ein lesbares Datum umwandeln
Um Epoch-Zeit (z. B. den exp -Claim in JWT) in ein menschenlesbares Datum umzuwandeln:
$epoch = "1729838496"
(Get-Date -Date "1/1/1970").AddSeconds($epoch)
Epoch-Zeit erzeugen
Um Epoch-Zeit aus dem aktuellen Datum zu erzeugen:
Get-Date $((Get-Date).ToUniversalTime()) -UFormat %s
Um Epoch-Zeit zu erzeugen, die 12 Stunden in der Zukunft liegt:
Get-Date $((Get-Date).AddHours(12).ToUniversalTime()) -UFormat %s
Nützliche Online-Tools
Wenn Sie ein schnelles Umrechnungstool benötigen, können Sie Folgendes verwenden:
Fazit
PowerShell macht es einfach, mit Epoch-Zeit für verschiedene Anwendungsfälle zu arbeiten, darunter JWT-Token-Claims, Assertions und Systemprotokolle. Mit den obigen Befehlen können Sie Epoch-Zeit effizient bearbeiten und umwandeln und so eine genaue Zeitverarbeitung in Ihren Skripten und Anwendungen sicherstellen.