我想减去包含在分隔列表中的日期值并只存储小于24小时的结果并将它们转换为小时。这是我到目前为止的代码:如何将一个DateTime对象转换为python中的小时?
#stored lists of dates
closure_date = ['2017-06-13 11:00:00', '2017-06-09 11:00:00', '2017-06-02 11:00:00']
opening_date = ['2017-06-13 05:00:00', '2017-06-09 05:00:00', '2017-06-02 05:00:00']
results = []
#Subtract the dates
results.append([datetime.strptime(c,'%Y-%m-%d %H:%M:%S') - datetime.strptime(o,'%Y-%m-%d %H:%M:%S') for c, o in zip(closure, opening) if datetime.strptime(c,'%Y-%m-%d %H:%M:%S') - datetime.strptime(o,'%Y-%m-%d %H:%M:%S')<timedelta(hours=24)])
结果我得到的是一个双榜与以秒为单位的格式不超过24小时的结果。
[[datetime.timedelta(0, 21600), datetime.timedelta(0, 21600)]]
一种方法我试过了,从结果列表中得到那些秒后,3600将每个结果得到的时间格式,是这样的:
for r in results:
hour.append(r.datetime.timedelta(days=1).total_seconds()/3600)
但是,这是不可能的,因为我得到错误AttributeError:'list'对象没有属性'datetime'这是合理的,因为结果是在双重列表中,我需要另一个索引从最内部的列表中提取每个结果,IMO不容易操作和我相信有更好的方法来实现这个目标。
我怎样才能以更好更简单的方式从双列表中获得秒数,以便日后操作进行其他算术计算?
看看https://pymotw.com/2/datetime/ – MishaVacic