Python: get datetime for '3 years ago today'

AP257 picture AP257 · Mar 1, 2011 · Viewed 64.6k times · Source

In Python, how do I get a datetime object for '3 years ago today'?

UPDATE: FWIW, I don't care hugely about accuracy... i.e. it's Feb 29th today, I don't care whether I'm given Feb 28th or March 1st in my answer. Concision is more important than configurability, in this case.

Answer

Vince Spicer picture Vince Spicer · Mar 1, 2011

If you need to be exact use the dateutil module to calculate relative dates

from datetime import datetime
from dateutil.relativedelta import relativedelta

three_yrs_ago = datetime.now() - relativedelta(years=3)