6

我希望 Python 自动给出本地化的月份名称。

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

我的问题是它一直给我“January”,而我期待“Janvier”(法语语言环境)。

我尝试使用 locale 进行一些操作,而我发现使其工作的唯一方法是locale.set_locale(locale.LC_ALL, "")在脚本开头调用。

这是好方法吗?还是有任何问题和更好的解决方案?

谢谢

4

2 回答 2

5

如果您不希望它影响 datetime 函数,请尝试以下操作:

def getLocalizedMonth(j):
  locale.setlocale(locale.LC_ALL, "")
  datetime.datetime.strptime(j, "%m").strftime("%B")
  locale.setlocale(locale.getdefaultlocale())

是的,我认为使用 locale.setlocale 是最好的解决方案!

于 2013-07-27T21:16:53.047 回答
5

如果您在操作系统级别设置了区域设置,

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"
于 2013-07-27T22:29:19.367 回答