我希望 Python 自动给出本地化的月份名称。
我使用这段代码:datetime.datetime.strptime(j, "%m").strftime("%B")
其中 j 是月份数。
我的问题是它一直给我“January”,而我期待“Janvier”(法语语言环境)。
我尝试使用 locale 进行一些操作,而我发现使其工作的唯一方法是locale.set_locale(locale.LC_ALL, "")
在脚本开头调用。
这是好方法吗?还是有任何问题和更好的解决方案?
谢谢
我希望 Python 自动给出本地化的月份名称。
我使用这段代码:datetime.datetime.strptime(j, "%m").strftime("%B")
其中 j 是月份数。
我的问题是它一直给我“January”,而我期待“Janvier”(法语语言环境)。
我尝试使用 locale 进行一些操作,而我发现使其工作的唯一方法是locale.set_locale(locale.LC_ALL, "")
在脚本开头调用。
这是好方法吗?还是有任何问题和更好的解决方案?
谢谢
如果您不希望它影响 datetime 函数,请尝试以下操作:
def getLocalizedMonth(j):
locale.setlocale(locale.LC_ALL, "")
datetime.datetime.strptime(j, "%m").strftime("%B")
locale.setlocale(locale.getdefaultlocale())
是的,我认为使用 locale.setlocale 是最好的解决方案!
如果您在操作系统级别设置了区域设置,
locale.set_locale(locale.LC_ALL, '')
print locale.nl_langinfo(locale.LC_MON1)
"janvier"
或者您可以在 python 级别设置它:
locale.set_locale(locale.LC_ALL, 'fr_FR')
print locale.nl_langinfo(locale.LC_MON1)
"janvier"