Convertir le temps Epoch dans PowerShell : un guide pratique

Comprendre et utiliser le temps Epoch dans PowerShell est essentiel pour les opérations de date et d'heure dans des scénarios tels que les jetons JWT, les assertions ou les journaux système. Ce guide donne des exemples de manipulation du temps Epoch et de sa conversion en formats lisibles par l'humain avec PowerShell.


Qu'est-ce que le temps Epoch ?

Le temps Epoch, également appelé temps Unix, temps POSIX ou horodatage Unix, est le nombre de secondes écoulées depuis le 1er janvier 1970 (minuit UTC/GMT), sans compter les secondes intercalaires. Il est largement utilisé en programmation et dans les systèmes comme représentation standard du temps.

Dans les jetons JWT, le temps Epoch est couramment utilisé pour des claims tels que iat (délivré à), nbf (pas avant) et exp (expiration). Voici un exemple de temps Epoch dans un jeton JWT :

{
  "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
}

Travailler avec les dates et les heures dans PowerShell

Obtenir la date et l'heure actuelles en UTC

Pour obtenir la date et l'heure actuelles en UTC :

$utc = (Get-Date).ToUniversalTime()

Convertir au format standard ISO 8601

Pour convertir la date UTC au format ISO 8601 :

Get-Date ((Get-Date).ToUniversalTime()) -Format o

Ajouter et soustraire du temps

Vous pouvez ajouter ou soustraire du temps à la date actuelle dans PowerShell avec les commandes suivantes :

Ajouter du temps

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

Soustraire du temps

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

Convertir le temps Epoch en date lisible

Pour convertir le temps Epoch (par exemple, le claim exp dans JWT) en date lisible par l'humain :

$epoch = "1729838496"
(Get-Date -Date "1/1/1970").AddSeconds($epoch)

Générer le temps Epoch

Pour générer le temps Epoch à partir de la date actuelle :

Get-Date $((Get-Date).ToUniversalTime()) -UFormat %s

Pour générer le temps Epoch avec 12 heures d'avance :

Get-Date $((Get-Date).AddHours(12).ToUniversalTime()) -UFormat %s

Outils en ligne utiles

Si vous avez besoin d'un outil de conversion rapide, vous pouvez utiliser :


Conclusion

PowerShell facilite le travail avec le temps Epoch pour divers cas d'usage, notamment les claims de jetons JWT, les assertions et les journaux système. Grâce aux commandes ci-dessus, vous pouvez manipuler et convertir le temps Epoch efficacement et garantir une gestion précise du temps dans vos scripts et applications.

Laisser un commentaire