2013-12-13 4 views
1
[d33tah-pc][~] $ LC_ALL="pl_PL.UTF-8" date 
sob, 14 gru 2013, 00:26:48 CET 
[d33tah-pc][~] $ LC_ALL="pl_PL.UTF-8" python 
Python 2.7.5 (default, Nov 12 2013, 16:18:42) 
[GCC 4.8.2 20131017 (Red Hat 4.8.2-1)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import time 
>>> time.strftime("%c") 
'Sat Dec 14 00:26:57 2013' 
>>> import locale 
>>> locale.setlocale(locale.LC_TIME, 'pl_PL.UTF-8') 
'pl_PL.UTF-8' 
>>> time.strftime("%c") 
'sob, 14 gru 2013, 00:27:09' 

Почему Python не использовал переменные среды системы в этом случае?Почему Python игнорирует LC_ALL?

ответ

3

Потому что это не использовать их по умолчанию. Вы должны явно включить поддержку локали.

locale.setlocale(locale.LC_TIME, '') 
+0

+1. И он делает это так же, как код POSIX C: вы должны явно запрашивать родную среду с '' '' для получения родной среды. (Я бы связался с спецификацией POSIX, но сервер, похоже, сейчас не работает ... просто Google «POSIX locale», и это первая ссылка.) – abarnert

Смежные вопросы