3

鉴于我从一个字符串开始,例如'3/6/2011'月/日/年,而当前日期是 2011 年 3 月 13 日(7 天后),我怎样才能找到从那时起经过的年数(7/ 365 = 0.0191780821917808) 在 Python 中?

请注意,我希望能够处理任何输入日期。虽然不是任何格式,但您可以采用上述格式。

4

3 回答 3

9

你可以timedelta通过减去两个datetimes 得到 ,这为你提供了很多很酷的方法来操作时差。

>>> import datetime
>>> before = datetime.datetime.strptime('3/6/2011','%m/%d/%Y')
>>> now = datetime.datetime.now()
>>> type(now-before)
<type 'datetime.timedelta'>
>>> (now-before).days
7
>>> float((now-before).days)/365
0.019178082191780823

编辑:哇,谁会想到这个简单的问题有这么多深度。看看这个问题上得票最多的答案。处理闰年是一个“困难”的问题。(归功于@kriegar)

于 2011-03-14T03:14:00.480 回答
1

以上所有答案均未考虑闰年。看起来这个问题的讨论与您的问题相关。

几年中两个日期之间的Pythonic差异?

于 2011-03-14T03:24:40.397 回答
1
>>> import datetime
>>> datestring = "3/6/2011"
>>> (datetime.date.today() - datetime.datetime.strptime(datestring, "%m/%d/%Y").date()).days / 365.0
0.019178082191780823
于 2011-03-14T03:15:31.540 回答