You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取无变格的本地化月份名称

获取无变格的本地化月份名称

我希望获取无变格的本地化月份名称。例如在波兰语中,July是lipiec,但“12th of July”会被拼写为12 lipca。我系统中运行以下代码输出的是lipca:

import calendar
import locale
import datetime

locale.setlocale(locale.LC_ALL, '')    
month = calendar.month_name[datetime.datetime.now().month]
print(month)

问题原因

calendar.month_name 返回的是月份名称的属格形式(比如波兰语的第二格),它默认适配“X月的Y日”这类日期表达场景,而非独立使用的主格(无变格)月份名称。

解决方案

用 locale.nl_langinfo() 配合 locale.MON_* 系列常量,就能直接获取主格的月份名称:

import locale
import datetime

# 设定系统本地化
locale.setlocale(locale.LC_ALL, '')

# 获取当前月份的主格名称
current_month = datetime.datetime.now().month
# MON_1对应一月,依次对应到MON_12
month_main_form = locale.nl_langinfo(getattr(locale, f"MON_{current_month}"))
print(month_main_form)

批量获取所有月份主格名称

如果需要一次性拿到全年12个月的无变格名称,可以这样写:

import locale

locale.setlocale(locale.LC_ALL, '')
all_months = [locale.nl_langinfo(getattr(locale, f"MON_{i}")) for i in range(1, 13)]
print(all_months)

注意事项

要确保你的系统已经安装了目标语言的本地化包,比如波兰语需要安装 pl_PL.UTF-8,否则可能无法正常返回对应语言的月份名称。

内容的提问来源于stack exchange,提问作者Hubert Bossy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 20:22:05