Tout d'abord, la Unix "époque" ou zéro heure est 1970-01-01 00:00:00Z (sens de minuit le 1er janvier 1970 dans le Zoulou ou GMT ou UTC) de la zone. Un Unix time stamp est le nombre de secondes depuis ce temps - pas de comptabilité pour les secondes intercalaires.
Générer l'heure actuelle dans le Perl est plutôt facile:
perl -e 'print time, "\n"'
Générer le temps correspondant à une valeur de date/heure est un peu moins facile. Logiquement, vous utilisez l' strptime()
fonction de POSIX. Cependant, le Perl POSIX::strptime module (qui est séparé du module POSIX) a la signature:
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday) =
POSIX::strptime("string", "Format");
La fonction mktime
dans le module POSIX a la signature:
mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)
Donc, si vous connaissez le format de vos données, vous pouvez écrire une variante:
perl -MPOSIX -MPOSIX::strptime -e \
'print mktime(POSIX::strptime("2009-07-30 04:30", "%Y-%m-%d %H:%M")), "\n"'