Вы можете использовать функцию timelocal в модуле Time :: Local CPAN.
ИМЯ
Время :: Местное - эффективно вычислять время
из местного и по Гринвичу времени
1010 * СИНТАКСИС *
$time = timelocal($sec,$min,$hour,$mday,$mon,$year);
$time = timegm($sec,$min,$hour,$mday,$mon,$year);
ОПИСАНИЕ
Этот модуль предоставляет функции, которые
являются инверсией встроенного Perl
функции localtime () и gmtime ().
Они принимают дату в виде шести элементов
массив и вернуть соответствующий
значение времени (2) в секундах с момента
системная эпоха (полночь, 1 января,
1970 по Гринвичу на Unix, например). это
значение может быть положительным или отрицательным,
хотя POSIX требует только поддержки
положительные значения, поэтому даты до
эпоха системы может не работать на всех
операционные системы.
Стоит обратить особое
внимание к ожидаемым диапазонам для
предоставленные значения. Значение для
день месяца фактический день (т.е.
1..31), а месяц - это количество месяцев с января (0..11). это
соответствует возвращенным значениям
от localtime () и gmtime ().
Примечание: POSIX :: mktime - это просто оболочка для функции mktime()
вашей библиотеки C. Time :: Local является реализацией чистого Perl и всегда возвращает результаты, соответствующие Perl localtime
. Кроме того, Time :: Local предлагает gmtime
, тогда как mktime
работает только по местному времени. (Ну, вы можете попробовать изменить $ENV{TZ}
, но на некоторых системах это не работает.)