将日期时间对象列表转换为自特定日期以来的天数列表

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

我有一个很大的日期列表,它们是日期时间对象,例如

[datetime.datetime(2016,8,14),datetime.datetime(2016,8,13),datetime.datetime(2016,8,12),....etc.]

我想要的不是日期的日期时间对象,而是自日期 1/1/1900 以来的整数值列表。我已将 1/1/1900 定义为基准日期,并在下面的 for 循环中,我计算了自该基准日期以来列表中的日期之间的天数:

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

print(numericalDates)

但是,当我打印出来时,我得到的是 datetime.timedelta 个对象

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

关于如何以正确的方式转换它有什么想法吗?

timedelta 对象具有 days 属性,因此您可以简单地将其附加为 int:

numericalDates.append(a.days)

将导致 numericalDates[42594, 42593, 42592]

请注意,您还可以通过使用列表理解来稍微简化代码:

numericalDates = [(d - baseDate).days for d in dates]