日期时间是否考虑了 1750 年日历(新式)法案?

hm8*_*hm8 5 python datetime calendar

1752年9月,根据1750年日历(新式)法案,1752年9月跳过了11天。这可以通过Unix cal命令看到。

$ cal 9 1752
September 1752
Su Mo Tu We Th Fr Sa
1 2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Run Code Online (Sandbox Code Playgroud)

在了解了这个事实之后,我想知道 Python 的 datetime 类是否解释了这一点。经过一番快速的尝试后,似乎并没有......

>>> datetime.datetime.now() - datetime.datetime(1752, 9, 14)
datetime.timedelta(96550, 47314, 535334)
>>> datetime.datetime.now() - datetime.datetime(1752, 9, 2)
datetime.timedelta(96562, 47318, 183610)
Run Code Online (Sandbox Code Playgroud)

根据我的理解,如果1752年9月14日是96550天前,那么1752年9月2日应该是96551天前(因为3-13被跳过)。

我还显得好像日历类也没有考虑到跳过

>>> calendar.prmonth(1752, 9)
   September 1752
Mo Tu We Th Fr Sa Su
             1  2  3
 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
Run Code Online (Sandbox Code Playgroud)

在绝大多数应用程序中,这可能无关紧要,但对我来说,这仍然是一个错误,因为没有考虑到这一点。当然,我也完全有可能遗漏了一些明显的东西。

我错过了一些明显的东西吗?

Bri*_*ian 3

python 日历在这里描述

\n\n
\n

这些函数和类中的大多数都依赖于 datetime 模块,该模块使用理想化的日历,即当前的公历在两个方向上无限期扩展。这与 Dershowitz 和 Reingold\xe2\x80\x99s\n 书中 \xe2\x80\x9cproleptic Gregorian\xe2\x80\x9d 日历的定义\n \n \xe2\x80\x9cCalendrical Calculations\xe2\x80\x9d 相匹配,其中它\xe2\x80\x99是所有计算的基准日历。

\n
\n\n

所以不,英国在 1752 年决定使用公历(就像西欧其他国家一样)而不是儒略历,这并没有反映在 Python 使用的日历中。对我来说很有趣的是 Unixcal命令确实包含开关。

\n