Python中用datetime模块获取星期几的核心是.weekday()和.strftime():前者返回0–6(周一为0),后者用%A/%a格式化英文名,中文需列表映射;字符串日期需先用strptime()解析。
Python里用 datetime 模块就能轻松根据日期得到星期几,核心是 .weekday() 和 .strftime() 这两个方法。
weekday() 获取数字表示的星期weekday() 返回 0–6 的整数,其中 Monday=0,Sunday=6:
示例:
from datetime import date d = date(2025, 6, 12) # 2025年6月12日 print(d.weekday()) # 输出:2 → 周三
strftime() 获取中文或英文星期名更直观的方式是用格式化字符串:
%A → 完整英文名(如 Wednesday)%a → 缩写英文名(如 W
ed)%w → 数字(0 是周日,1–6 是周一到周六)注意:和 weekday() 起始不同!['周一','周二','周三','周四','周五','周六','周日'][d.weekday()]
示例(中文输出):
from datetime import date d = date(2025, 6, 12) weekdays = ['周一', '周二', '周三', '周四', '周五', '周六', '周日'] print(weekdays[d.weekday()]) # 输出:周三
如果输入是字符串,先用 strptime() 解析成 date 或 datetime 对象:
from datetime import datetime s = "2025-06-12" d = datetime.strptime(s, "%Y-%m-%d").date() print(['周一','周二','周三','周四','周五','周六','周日'][d.weekday()])
常见格式符号:%Y 四位年,%m 月,%d 日,%H:%M:%S 时分秒。
默认按系统本地时区计算。若涉及跨时区或需要本地化名称(如中文星期),推荐用 locale 模块设置区域,或直接用列表映射更稳妥。pandas 的 dt.day_name() 在处理时间序列时也很好用,但纯 Python 场景无需额外依赖。
基本上就这些,不复杂但容易忽略 weekday() 和 %w 的起始差异。