Merlin
Merlin

Reputation: 25629

How to subtract datetimes with python

Today =

today = datetime.datetime.now().strftime("%Y%m%d")

90days ago

DD = datetime.timedelta(days=-90)

How do I get today - DD, or 90days ago?

Upvotes: 26

Views: 85189

Answers (4)

Shyam
Shyam

Reputation: 281

from datetime import date,timedelta

currentDay = date.today()

requestedDay = currentDay - timedelta(days=90)

print(requestedDay)

hope it solves.

Upvotes: 5

João Silva
João Silva

Reputation: 91299

You need to subtract timedelta(days=90):

from datetime import date, datetime, timedelta
today = datetime.now()
dd = today - timedelta(days=90) 
print(dd)

It should print 2010-11-03 15:04:42.289684.

Upvotes: 11

bgporter
bgporter

Reputation: 36454

Just subtract a timedelta from a datetime:

>>> import datetime
>>> today = datetime.datetime.today()
>>> DD = datetime.timedelta(days=90)
>>> today - DD
datetime.datetime(2010, 11, 3, 9, 56, 20, 924224)

(or if you want to use a negative timedelta like you did there, add them:

>>> DD = datetime.timedelta(days=-90)
>>> today + DD
datetime.datetime(2010, 11, 3, 9, 56, 20, 924224)

Upvotes: 16

Joshua Strouse
Joshua Strouse

Reputation: 797

You should be able to subtract time deltas from datetime objects.

today = datetime.datetime.now()
DD = datetime.timedelta(days=90)
earlier = today - DD
earlier_str = earlier.strftime("%Y%m%d")

Upvotes: 46

Related Questions