Python 中的本地化月份名称

Phy*_*yks 6 python localization

我想由 Python 自动给出本地化的月份名称。

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

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

我尝试使用语言环境,我发现让它起作用的唯一方法是locale.set_locale(locale.LC_ALL, "")在脚本的开头调用。

这是好的方法吗?或者有什么问题和更好的解决方案?

谢谢

小智 5

如果您只是不想它影响日期时间功能,请尝试以下操作:

def getLocalizedMonth(j):
  locale.setlocale(locale.LC_ALL, "")
  datetime.datetime.strptime(j, "%m").strftime("%B")
  locale.setlocale(locale.getdefaultlocale())
Run Code Online (Sandbox Code Playgroud)

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

  • `locale.setlocale` 有 2 个参数。在你的情况下应该是: `locale.setlocale(locale.LC_ALL, locale.getdefaultlocale())` (2认同)

sws*_*phe 5

如果您在操作系统级别设置了语言环境,

locale.set_locale(locale.LC_ALL, '')
print locale.nl_langinfo(locale.LC_MON1)

"janvier"
Run Code Online (Sandbox Code Playgroud)

或者你可以在 python 级别设置它:

 locale.set_locale(locale.LC_ALL, 'fr_FR')
 print locale.nl_langinfo(locale.LC_MON1)

 "janvier"
Run Code Online (Sandbox Code Playgroud)

  • 在 Python 3 中它是 `locale.setlocale(locale.LC_ALL, '')` (Python 3.7)。 (2认同)