Tout d'abord, `` l'époque '' ou l'heure zéro Unix est 1970-01-01 00: 00: 00Z (ce qui signifie minuit du 1er janvier 1970 dans le fuseau horaire zoulou ou GMT ou UTC). Un horodatage Unix est le nombre de secondes écoulées depuis ce temps - sans tenir compte des secondes intercalaires.
Générer l'heure actuelle en Perl est assez simple:
perl -e 'print time, "\n"'
La génération de l'heure correspondant à une valeur date / heure donnée est plutôt moins aisée. Logiquement, vous utilisez la strptime()
fonction de POSIX. Cependant, le module Perl POSIX :: strptime (qui est distinct du module POSIX) a la signature:
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday) =
POSIX::strptime("string", "Format");
La fonction mktime
du 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 sur:
perl -MPOSIX -MPOSIX::strptime -e \
'print mktime(POSIX::strptime("2009-07-30 04:30", "%Y-%m-%d %H:%M")), "\n"'