Epoch-Zeit in PowerShell umwandeln: Eine praktische Anleitung

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.

Kommentar hinterlassen