bwrr bwrr - 1 year ago 86
Python Question

Converting a list of datetime objects to a list of number of days since a certain date

I have a large list of dates that are datetime objects like for example


Instead of datetime objects of the date what I want instead is a list of numerical integer values since the date 1/1/1900. I have defined 1/1/1900 as the base date and in the for loop below, I have calculated the days between the date in the list since that base date:

baseDate = datetime(1900,1,1)
numericalDates = []
for i in enumerate(dates):


However when I print this out, I get datetime.timedelta objects instead

[datetime.timedelta(42592), datetime.timedelta(42591), datetime.timedelta(42590),...etc.]

Any ideas on how I can convert it the proper way?

Answer Source

timedelta objects have days attribute, so you can simply append that as an int:


will result with numericalDates being [42594, 42593, 42592].

Note that you can also simplify your code a bit by using list comprehension:

numericalDates = [(d - baseDate).days for d in dates]
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download