我希望Python自动提供本地化的月份名称。
我使用这段代码:datetime.datetime.strptime(j, "%m").strftime("%B")
其中j是月份数。
我的问题是,当我期待“Janvier”(法国语言环境)时,它一直给我“一月”。
我试着用locale玩一点,我发现让它工作的唯一方法是在脚本开头调用locale.set_locale(locale.LC_ALL, "")
。
这是好的方式吗?或者有任何问题和更好的解决方案吗?
由于
答案 0 :(得分:4)
如果您不想影响日期时间功能,请尝试以下方法:
def getLocalizedMonth(j):
locale.set_locale(locale.LC_ALL, "")
datetime.datetime.strptime(j, "%m").strftime("%B")
locale.setlocale(locale.getdefaultlocale())
是的,我认为使用locale.setlocale是最好的解决方案!
答案 1 :(得分:2)
如果您的语言环境设置为操作系统级别,
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"