Функция localtime

Метки времени (например, полученные при вызове stat) обычно выглядят как длинные и непонятные числа, например 1180630098. Для большинства программистов такие метки неудобны, разве что вы захотите сравнить две метки посредством вычитания. Возможно, вам потребуется преобразовать метку в строку вида Thu May 31 09:48:18 2007. В Perl эта задача решается функцией localtime в скалярном контексте:

my $timestamp = 1180630098;
my $date = localtime $timestamp;

В списочном контексте localtime возвращает список чисел, причем некоторые его элементы оказываются довольно неожиданными:

my($sec, $min, $hour, $day, $mon, $year, $wday, $yday, $isdst)
= localtime $timestamp;

$mon – номер месяца от 0 до 11 – может использоваться в качестве индекса в массиве названий месяцев. $year – количество лет, прошедших с 1900 года; чтобы получить «настоящий» год, достаточно прибавить 1900. Значение $wday лежит в интервале от 0 (воскресенье) до 6 (суббота), а $yday – номер дня года, от 0 (1 января) до 364 или 365 (31 декабря). Есть еще две функции, которые пригодятся при работе с временными метками. Функция gmtime аналогична localtime, но результат она возвращает в формате единого мирового времени (когда-то называвшемся «гринвичским»). Если вам понадобится текущая временная метка от системных часов, воспользуйтесь функцией time. И localtime, и gmtime при вызове без параметра по умолчанию используют текущее значение time:

my $now = gmtime; # Получить текущее мировое время в виде строки

За дополнительной информацией о работе с датой и временем обращайтесь к перечню модулей в приложении B.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Perl на эту тему:
Операторы проверки файлов
Поразрядные операторы
Проверка нескольких атрибутов одного файла
Работа с битовыми строками
Сгруппированная проверка файлов