PERL: БИБЛИОТЕКА ПРОГРАММИСТА - стр. 109
use POSIX qw(strftime),
use Time Local
$time = timelocal(50, 45 3, 18 0, 73),
print Scalar localtime gives , scalar(localtime($time)) \n ,
Scalar localtime gives: Thu Jan 18 03:45:50 1973
Разумеется, дата и время для localtime должны исчисляться в секундах с начала эпохи. Функция POSIX strftime получает набор компонентов полного времени и форматную строку, аналогичную pnntf, и возвращает также строку. Поля в выходной строке задаются директивами %. Полный список директив приведен в документации по strftime для вашей системы. Функция strftime ожидает, что отдельные компоненты даты/времени принадлежат тем же интервалам, что и значения, возвращаемые localtime:
use POSIX qw(strftime),
use Time Local,
$time = timelocal(50, 45 3, 18, 0, 73),
print strftime gives , strftime( %A %D , localtime($time)) \n ,
strftime gives: Thursday 01/18/73
При использовании POSIX • strftime все значения выводятся в соответствии с национальными стандартами. Так, во Франции ваша программа вместо "Sunday" выведет "Dimanche". Однако учтите: интерфейс Perl к функции strftime модуля POSIX всегда преобразует дату в предположении, что она относится к текущему часовому поясу.
Если функция strftime модуля POSIX недоступна, у вас всегда остается верный модуль Date::Manip, описанный в рецепте 3.6.
use Date Manip qw(ParseDate UnixDate), $date = ParseDate( 18 Jan 1973, 3 45 50 ),
3.9. Таймеры высокого разрешения 107
$datestr = UmxOate($date, %а %Ь %е %Н %М %S %г %У ), # скалярный контекст print Date Manip gives $datestr\n , Date::Mamp gives: Thu Jan 18 03:45:50 GMT 1973
!> Смотри также--------------------------------------------------------------------------------------------
Описание функции gmtime и localtime в perlfunc(l); perllocale(l); man-страшще strftime(3) вашей системы; документация по модулям POSIX и Date::Manip cCPAN.
3.9. Таймеры высокого разрешения