Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Как получить строку с датой в текущей локали?


Автор: ilya_evseev 7.2.2007, 23:12
Команда /bin/date в Юниксах пишет дату по-русски в соответствии с текущей локалью.
Функция Перла localtime() делает прямой вызов ctime(), который всегда возвращает дату на английском.

Вопрос: есть ли её локализованные или хотя бы русифицированные аналоги?

Пока что единственный выход представляется в использовании следующего самопала:
Код

sub localtime_rus($) {
    my %trans = { 'Mon'=>'Пон', ... , 'Sun'=>'Вск', 'Jan'=>'Янв', ... , 'Dec'=>'Дек' };
    $_ = localtime(shift);
    while (my ($k,$v) = each %trans) {
        s/$k/$v/i;
    }
    $_;
}

...но хочется чего-то, уже имеющегося на CPAN, включённого в порты FreeBSD,
форматирующего дату в виде дд/мм/гг или дд.мм.гг и т.д.

Автор: arto 8.2.2007, 01:42
perldoc POSIX | less -p strftime

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)