【问题标题】:Converting a list of datetime objects to a list of number of days since a certain date将日期时间对象列表转换为自某个日期以来的天数列表
【发布时间】:2016-08-14 09:00:35
【问题描述】:

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

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

我想要的不是日期的 datetime 对象,而是自日期 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.]

关于如何正确转换它的任何想法?

【问题讨论】:

标签: python datetime python-datetime


【解决方案1】:

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

numericalDates.append(a.days)

将导致numericalDates 成为[42594, 42593, 42592]

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

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

【讨论】:

    猜你喜欢
    • 2014-10-28
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    • 2017-01-08
    • 2015-07-03
    • 1970-01-01
    相关资源
    最近更新 更多