知道N年前的确切日期

时间:2015-05-28 17:48:24

标签: python python-datetime

我有关于python日期的请求... 我想知道N_YEARS前的确切日期。 所以,我尝试了这个简单的代码:

years_count = N_YEARS * 365
today = datetime.datetime.today()
birthday_date = today + datetime.timedelta(days=-years_count)

但这不正确。 示例:

Today: 28/05/2015 (DD/MM/YYYY)
N_YEARS: 18
Result: 1997-06-01 (YYYY/MM/DD) **17 Years, 11 Months e 27 Days**

timedelta函数是否正确以这种方式计算天数:N_YEARS * 365 我该如何解决?

1 个答案:

答案 0 :(得分:6)

使用replace

today = today.replace(year = today.year - N_YEARS)

编辑:请注意,如果today是2月29日且结果年份不是闰年,则会引发错误:

>>> a = datetime.datetime(2012, 2, 29)
>>> a.replace(year=a.year - 10)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: day is out of range for month