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


Автор: klem4 23.3.2010, 22:57
Как заставить strftime не использовать текущую локаль ? no locale и приведенный ниже вариант не помогают ...

Код

#!/usr/bin/perl
use POSIX qw[ strftime locale_h ];
setlocale(LC_ALL, 'en_US.UTF-8');

    print strftime("%A, %d-%B-%y %H:%M:%S", localtime(time)), "\n";


$ perl test.pl
Вторник, 23-Март-10 23:00:30

локаль консоли ru_RU.UTF-8.

Спасибо.

Автор: vadiml 24.3.2010, 00:39
$ set | grep LANG
LANG=ru_RU.UTF-8
LANGUAGE=

$ perl -MPOSIX -e 'print strftime("%A, %d-%B-%y %H:%M:%S", localtime(time)), "\n"'
Вторник, 23-Март-10 23:35:12

$ LANG=C perl -MPOSIX -e 'print strftime("%A, %d-%B-%y %H:%M:%S", localtime(time)), "\n"'
Tuesday, 23-March-10 23:35:06

Автор: amg 24.3.2010, 06:19
Переменные окружения можно попробовать задать и внутри скрипта:
$ENV{LC_ALL} = 'C';

Автор: krypt3r 24.3.2010, 07:00
хм, а у меня код ТС-а, выдал ожидаемый результат
Код

Wednesday, 24-March-10 08:59:45

А вот использование %ENV как раз и не повлияло ни на что.

ЗЫ. Локаль, естественно, ru_RU.UTF-8

Автор: arto 24.3.2010, 07:11
perldoc perllocale, LC_TIME

Автор: klem4 24.3.2010, 12:07
Кроме изменение LANG непосредственно в консоли, ничего пока не помогает ... 

Автор: arto 24.3.2010, 13:11
# LC_ALL=ru_RU.UTF8 perl -MPOSIX=strftime,locale_h -le 'print strftime "%A, %d-%B-%y %H:%M:%S",localtime'
Среда, 24-Март-10 12:10:16
# LC_ALL=ru_RU.UTF8 perl -MPOSIX=strftime,locale_h -le 'setlocale (LC_TIME,"C"); print strftime "%A, %d-%B-%y %H:%M:%S",localtime'
Wednesday, 24-March-10 12:11:7

Автор: klem4 24.3.2010, 20:07
Всем спасибо. Модерам просьба поставить arto +1. В итоге правда через реплэйсы сделал функцию, а потом вообще другим путем пошел. Но знание все равно сила smile

Автор: JackYF 24.3.2010, 20:16
Цитата(klem4 @  24.3.2010,  19:07 Найти цитируемый пост)
Модерам просьба поставить arto +1.

Сделано.

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