Prima di tutto, l '"epoca" di Unix o zero-time è 1970-01-01 00: 00: 00Z (che significa mezzanotte del 1 ° gennaio 1970 nel fuso orario Zulu o GMT o UTC). Un timestamp Unix è il numero di secondi da quel momento - non tenendo conto dei secondi bisestili.
Generare l'ora corrente in Perl è piuttosto semplice:
perl -e 'print time, "\n"'
Generare l'ora corrispondente a un dato valore data / ora è piuttosto meno semplice. Logicamente, si utilizza la strptime()
funzione da POSIX. Tuttavia, il modulo Perl POSIX :: strptime (che è separato dal modulo POSIX) ha la firma:
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday) =
POSIX::strptime("string", "Format");
La funzione mktime
nel modulo POSIX ha la firma:
mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)
Quindi, se conosci il formato dei tuoi dati, puoi scrivere una variante su:
perl -MPOSIX -MPOSIX::strptime -e \
'print mktime(POSIX::strptime("2009-07-30 04:30", "%Y-%m-%d %H:%M")), "\n"'