Python中的本地化月份名称

时间:2013-07-27 21:00:10

标签: python localization

我希望Python自动提供本地化的月份名称。

我使用这段代码:datetime.datetime.strptime(j, "%m").strftime("%B")其中j是月份数。

我的问题是,当我期待“Janvier”(法国语言环境)时,它一直给我“一月”。

我试着用locale玩一点,我发现让它工作的唯一方法是在脚本开头调用locale.set_locale(locale.LC_ALL, "")

这是好的方式吗?或者有任何问题和更好的解决方案吗?

由于

2 个答案:

答案 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"