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

如何在Python标准库中获取星期与月份名称列表?

获取星期和月份名称列表的优雅方案

不用手动定义列表或者逐个调用strftime(),Python标准库提供了更简洁的方式,分两种场景说明:

一、获取英文默认名称列表

直接使用calendar模块,它内置了现成的名称序列:

月份名称

  • 完整名称:calendar.month_name是一个从索引0(空字符串)到12的序列,取有效部分转成列表即可:
    import calendar
    full_months = list(calendar.month_name[1:])
    # 结果:['January', 'February', ..., 'December']
    
  • 缩写名称:用calendar.month_abbr,同样取索引1到12:
    short_months = list(calendar.month_abbr[1:])
    # 结果:['Jan', 'Feb', ..., 'Dec']
    

星期名称

  • 完整名称:calendar.day_name返回当前默认locale下的星期名称列表(默认英文,顺序为周一到周日):
    full_days = list(calendar.day_name)
    # 结果:['Monday', 'Tuesday', ..., 'Sunday']
    
  • 缩写名称:用calendar.day_abbr:
    short_days = list(calendar.day_abbr)
    # 结果:['Mon', 'Tue', ..., 'Sun']
    

二、获取本地化名称列表(如中文、法语等)

结合locale模块设置语言环境,再用calendar或locale模块获取对应语言的名称:

示例:获取中文名称

import locale
import calendar

# 注意:不同系统的locale写法有差异,Windows用'zh-CN',Linux/macOS用'zh_CN.UTF-8'
locale.setlocale(locale.LC_TIME, 'zh_CN.UTF-8')

# 中文完整月份列表
chinese_full_months = list(calendar.month_name[1:])
# 中文完整星期列表
chinese_full_days = list(calendar.day_name)

另一种方式:用locale.nl_langinfo

可以直接获取指定的本地化名称,适合更精细的控制:

import locale
locale.setlocale(locale.LC_TIME, 'zh_CN.UTF-8')
from locale import nl_langinfo

# 中文月份(1-12月)
chinese_months = [nl_langinfo(getattr(locale, f'MON_{i}')) for i in range(1, 13)]
# 中文星期(周一到周日)
chinese_days = [nl_langinfo(getattr(locale, f'DAY_{i}')) for i in range(1, 8)]

这些方法都是标准库原生支持,不用自己维护名称列表,也避免了循环调用strftime()的繁琐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 13:17:16