我想減去包含在分隔列表中的日期值並只存儲小於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