Flash info

"Si vous vivez chaque jour comme si c'était le dernier, un jour vous aurez probablement raison."

Steve Jobs (1955-2011)

 
Accueil arrow Bibliothèque de scripts arrow Système arrow Conversion de dates au format Unix Epoch
Conversion de dates au format Unix Epoch
Écrit par Arnaud Petitjean [MVP]   
20-01-2012
1327084231 

Il peut arriver que, tout comme moi, vous soyez amené dans votre vie de scripteur PowerShell à manipuler un jour ou l'autrre des dates au format Unix Epoch.

Pour ma part, je suis tombé récemment sur ce format de dates, qui m’était jusqu’alors inconnu; et ce en manipulant des fichiers de logs provenant de la plateforme Unix/Linux.

Ainsi j’ai dû effectuer quelques conversions de dates Epoch en type DateTime PowerShell (celui de .Net) et vice versa afin de pouvoir effectuer des comparaisons sur un certain nombre de valeurs.

Pour la petite histoire, ce format est un « timestamp » qui représente le nombre de secondes écoulées depuis le 1er Janvier 1970 à 0h (UTC).

Aussi curieux que cela puisse paraître, pour les IT guys que nous sommes (mais les développeurs devaient avoir de bonnes raisons de procéder ainsi), sachez que sous Windows nous avons aussi nos « bizarreries » de la sorte, et pire encore !

Par exemple, dans Active Directory, tous les timestamps, comme la date de dernière connexion d’un utilisateur est calculée en nombre de ticks (1 tick = 10 millionièmes de secondes) depuis le 1er Janvier 1601 !!!

Function ConvertFrom-EpochDate

   Param ([double]$epochTimeStamp)
   [timezone]::CurrentTimeZone.ToLocalTime(([datetime]'1/1/1970').AddSeconds($epochTimeStamp))
}

 

Function ConvertTo-EpochDate

   Param ( [DateTime]$Date = (Get-Date) )
   $UTCDate = (Get-Date $Date).ToUniversalTime()
   Get-Date $UTCDate -UFormat %s
}

Exemple d'utilisation :

# Conversion de la date et l'heure courante 
PS > ConvertTo-EpochDate 
1327084231.40557


# Conversion d'une date specifique (24 Janvier 2012 22:00)
PS > ConvertTo-EpochDate (Get-date "01/24/2012 22:00")


# Conversion a partir d'un timestamp Unix Epoch
PS > ConvertFrom-EpochDate 1327084231.40557
Friday, January 20, 2012 1:30:31 PM


 

Epoch Converter (service en ligne): http://www.epochconverter.com/

Dernière mise à jour : ( 20-01-2012 )
 
© 2017 PowerShell-Scripting.com