Pour ceux qui ne savent pas ce que c'est, Go Wikipedia :http://en.wikipedia.org/wiki/Unix_time
Donc en Autoit, pour connaitre le Timestamp Unix, c'est avec cette fonction :
Code : Tout sélectionner
#include <date.au3>
$iTimeStamp = _DateAdd('s', $unixtime, "1970/01/01 00:00:00")
Le problème qui se pose, c'est que la majorité des TimeStamp Unix qu'on peut trouver sur le web, par exemple avec PHP, retournent la Valeur du timestamp selon le fuseau horaire UTC.
Hors en France, nous ne sommes pas en UTC comme vous le savez mais en UTC+1, mais vous me direz il suffit d'enlever 3600 secondes et le tour est joué, mais il reste le problème de l'heure d'hiver/heure d'été qui se pose, car on passe en UTC+2 pendant l'été, et comme en bons francais on aime se compliquer la tache, la date de changement d'heures change tous les ans, impossible de se caler sur le calendrier.
Voila donc comment vous y prendre :
Code : Tout sélectionner
#include <date.au3>
$unixtime = 1272700408
$timezone = _Date_Time_GetTimeZoneInformation()
$unixtime = $unixtime - ($timezone[1] + $timezone[7]) * 60
$iDateCalc = _DateAdd('s', $unixtime, "1970/01/01 00:00:00")
Code : Tout sélectionner
Func _EPOCH_decrypt($epoch_time)
Local $Day2Add = Int($epoch_time / 86400)
Local $iTimeVal = Mod($epoch_time, 86400)
If $iTimeVal < 0 Then
$Day2Add -= 1
$iTimeVal += 86400
EndIf
Local $i_wFactor = Int((573371.75 + $Day2Add) / 36524.25)
Local $i_xFactor = Int($i_wFactor / 4)
Local $i_bFactor = 2442113 + $Day2Add + $i_wFactor - $i_xFactor
Local $i_cFactor = Int(($i_bFactor - 122.1) / 365.25)
Local $i_dFactor = Int(365.25 * $i_cFactor)
Local $i_eFactor = Int(($i_bFactor - $i_dFactor) / 30.6001)
Local $asDatePart[3]
$asDatePart[2] = $i_bFactor - $i_dFactor - Int(30.6001 * $i_eFactor)
$asDatePart[1] = $i_eFactor - 1 - 12 * ($i_eFactor - 2 >= 13)
$asDatePart[0] = $i_cFactor - 4716 + ($asDatePart[1] < 3)
Local $asTimePart[3]
$asTimePart[0] = Int($iTimeVal / 3600)
$iTimeVal = Mod($iTimeVal, 3600)
$asTimePart[1] = Int($iTimeVal / 60)
$asTimePart[2] = Mod($iTimeVal, 60)
Return SetError(0, 0, StringFormat("%.2d/%.2d/%.2d %.2d:%.2d:%.2d", $asDatePart[0], $asDatePart[1], $asDatePart[2], $asTimePart[0], $asTimePart[1], $asTimePart[2]))
EndFunc ;==>_EPOCH_decrypt
Exemples:
► Afficher le texte