Перш за все, "епоха" або нульовий час Unix - це 1970-01-01 00: 00: 00Z (мається на увазі півночі 1 січня 1970 року в зоні Зулу або GMT або UTC). Часова позначка Unix - це кількість секунд з того часу - не враховуючи високосних секунд.
Генерація поточного часу в Perl досить проста:
perl -e 'print time, "\n"'
Генерування часу, відповідного заданому значенню дати / часу, є досить менш простим. За логікою ви використовуєте strptime()
функцію POSIX. Однак модуль Perl POSIX :: strptime (який є окремим від модуля POSIX) має підпис:
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday) =
POSIX::strptime("string", "Format");
Функція mktime
в модулі POSIX має підпис:
mktime(sec, min, hour, mday, mon, year, wday = 0, yday = 0, isdst = 0)
Отже, якщо ви знаєте формат своїх даних, ви можете написати варіант на:
perl -MPOSIX -MPOSIX::strptime -e \
'print mktime(POSIX::strptime("2009-07-30 04:30", "%Y-%m-%d %H:%M")), "\n"'