我有一个Python程序(jrnl),该程序应将星期几以德语文本打印。但是,它总是打印英文名称。
这是输出locale:
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=de_DE.UTF-8
LC_TIME=de_DE.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=de_DE.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=de_DE.UTF-8
LC_NAME=de_DE.UTF-8
LC_ADDRESS=de_DE.UTF-8
LC_TELEPHONE=de_DE.UTF-8
LC_MEASUREMENT=de_DE.UTF-8
LC_IDENTIFICATION=de_DE.UTF-8
LC_ALL=
Run Code Online (Sandbox Code Playgroud)
您可以看到将LC_TIME其设置为de_DE.UTF-8。但是当我启动python时,未设置此语言环境:
>>> import locale
>>> locale.getlocale(locale.LC_TIME)
(None, None)
Run Code Online (Sandbox Code Playgroud)
所以我的工作日用英语显示:
>>> from time import gmtime, strftime
>>> strftime("%A, %d %b %Y %H:%M:%S +0000", gmtime())
'Monday, 15 Jan 2018 20:22:30 +0000'
Run Code Online (Sandbox Code Playgroud)
我必须为python使用系统区域设置做什么?
最初,启动程序时
C,无论用户首选的语言环境是什么,语言环境都是语言环境。
您需要使用显式设置语言环境locale.setlocale()。使用空字符串表示需要使用用户配置:
locale.setlocale(locale.LC_TIME, '')
Run Code Online (Sandbox Code Playgroud)
这是标准行为;底层C级区域系统明确地开始在C现场,无论环境变量的,因为你不能假设当前程序实际上想要或需要的荣誉用户设置。
| 归档时间: |
|
| 查看次数: |
260 次 |
| 最近记录: |