将日期时间对象列表转换为自特定日期以来的天数列表
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]
我有一个很大的日期列表,它们是日期时间对象,例如
[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]