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

Python datetime返回错误星期几:1678年12月16日计算异常求助

问题解答

这不是datetime模块算错了,是历法差异搞的鬼:

  • Python的datetime默认用格里高利历规则计算所有日期,哪怕是几百年前的,但1678年那会儿欧洲多数地区用的还是儒略历,两种历法的日期计算规则不同,星期结果自然对不上。
  • 你提到的截图里显示的星期一,是儒略历下1678年12月16日的星期(对应weekday()返回0);而datetime.datetime(1678,12,16).weekday()返回4,是按格里高利历回溯计算出来的星期五,这俩结果都是各自历法下的正确值。

如果要准确计算历史儒略历日期的星期,可以用第三方库python-dateutil,示例代码:

from dateutil.calendars import JulianCalendar

# 使用儒略历计算指定日期的星期
jc = JulianCalendar()
print(jc.weekday(1678, 12, 16))  # 输出0,对应星期一

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 14:12:14