Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 现场问题_Python_Locale - Fatal编程技术网

Python 现场问题

Python 现场问题,python,locale,Python,Locale,win32上的Python 2.7.2(默认值,2011年6月12日14:24:46)[MSC v.1500 64位(AMD64)]。 >>> locale.getdefaultlocale() ('ru_RU', 'cp1251') #ok, Russian locale is set, as per user settings >>> a = datetime.date.today() >>> a.strftime("%B %d")

win32上的Python 2.7.2(默认值,2011年6月12日14:24:46)[MSC v.1500 64位(AMD64)]。

>>> locale.getdefaultlocale()
('ru_RU', 'cp1251')  #ok, Russian locale is set, as per user settings
>>> a  = datetime.date.today()
>>> a.strftime("%B %d")
March 22' #ouch, that's not Russian.
>>> locale.setlocale(locale.LC_ALL, 'russian_russia')
'Russian_Russia.1251'
>>> a.strftime("%B %d")
'Март 22' #now it's ok

所以。。。为什么不重置默认区域设置它就不能工作?它与操作系统相关吗?是否有一种方法可以执行类似于
locale.setlocale(以某种方式转换它(locale.getdefaultlocale())
?我想做的就是根据用户的偏好显示日期。谢谢

关于区域设置需要了解的是,Python作为编程语言实现而不是应用程序,不能假定环境区域设置(通过
LANG
LC.*
环境变量)是否应应用于用Python编写的程序。因此,Python不设置区域设置。您的程序必须明确地这样做。Python会为您解析语言环境变量,这就是
locale.getdefaultlocale()
返回的内容:环境指定的默认语言环境


实际使用的活动区域设置由
locale.getlocale()
返回,如果在显式设置区域设置之前运行该设置,您将看到它返回
(无,无)
(表示未设置区域设置)。如果希望应用程序使用环境指定的默认区域设置,您必须调用
locale.setlocale(locale.LC\u ALL')
。(空字符串表示“无论默认值是什么”,不幸的是与
None
或未传递参数不同。)

关于区域设置,需要了解的是,Python作为编程语言实现而不是应用程序,不能假定环境的区域设置(通过
LANG
LC.*
环境变量)应应用于用Python编写的程序。因此,Python不设置区域设置。您的程序必须显式设置。Python为您解析区域设置变量,这就是
locale.getdefaultlocale()
返回:环境指定的默认区域设置

实际使用的活动区域设置由
locale.getlocale()
)返回,如果在显式设置区域设置之前运行该区域设置,则会看到它返回
(无,无)
(指示未设置区域设置)如果希望应用程序使用环境指定的默认区域设置,则必须调用
locale.setlocale(locale.LC_ALL,”)
(空字符串表示“默认值”,遗憾的是与
None
不同,或者不传递参数。)