Primeiro, a época do Unix ou o tempo zero é 1970-01-01 00: 00: 00Z (ou seja, meia-noite de 1º de janeiro de 1970 no fuso horário Zulu, GMT ou UTC). Um registro de data e hora do Unix é o número de segundos desde esse horário - sem contabilizar os segundos bissextos.
Gerar o horário atual no Perl é bastante fácil:
perl -e 'print time, "\n"'
Gerar a hora correspondente a um determinado valor de data / hora é um pouco menos fácil. Logicamente, você usa a strptime()
função do POSIX. No entanto, o módulo Perl POSIX :: strptime (que é separado do módulo POSIX) possui a assinatura:
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday) =
POSIX::strptime("string", "Format");
A função mktime
no módulo POSIX possui a assinatura:
mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)
Portanto, se você conhece o formato dos seus dados, pode escrever uma variante em:
perl -MPOSIX -MPOSIX::strptime -e \
'print mktime(POSIX::strptime("2009-07-30 04:30", "%Y-%m-%d %H:%M")), "\n"'