小编Juk*_*nen的帖子

在 Python 中更改语言环境后,如何将其重置回原始语言环境?

在 Python 程序中更改语言环境后,将其更改回原始值的安全方法是什么?

到目前为止,我所尝试的是locale.getlocale 在进行更改之前存储返回的原始语言环境,然后使用locale.setlocale之后更改回它。

示例程序:

import datetime
import locale

now = datetime.datetime.now()

locale.setlocale(locale.LC_ALL, '')
print("Date using your locale      : %s" % now.strftime('%c'))

saved = locale.getlocale(locale.LC_TIME)
locale.setlocale(locale.LC_TIME, 'C')
print("Date using the C locale     : %s" % now.strftime('%c'))

locale.setlocale(locale.LC_TIME, saved)
print("Date using your locale again: %s" % now.strftime('%c'))
Run Code Online (Sandbox Code Playgroud)

但是,这并不总是按预期工作。似乎问题出在具有修饰符('@' 符号后面的位)的语言环境中。在 Debian 10 系统上使用 Python 3.7 尝试以下操作说明了问题:

$ LC_TIME=sr_RS.utf8@latin python3 example.py
Date using your locale      : ?etvrtak, 01. avgust 2019. 14:43:43 
Date using the C locale     : …
Run Code Online (Sandbox Code Playgroud)

python locale

6
推荐指数
1
解决办法
427
查看次数

标签 统计

locale ×1

python ×1