2011-05-11 54 views

回答

3

Python的datetime.time對象使用「軍事」時間。你可以做這樣的事情:

>>> t = datetime.time(hour=15, minute=12) 
>>> u = datetime.time(hour=16, minute=44) 
>>> t = datetime.datetime.combine(datetime.datetime.today(), t) 
>>> t 
datetime.datetime(2011, 5, 11, 15, 12) 
>>> u = datetime.datetime.combine(datetime.datetime.today(), u) 
>>> t - u 
datetime.timedelta(-1, 80880) 

有點小玩意兒,像你描述的轉換應該很簡單。


沒有看到任何代碼,很難說出你想要的是什麼。但我相信你可以做這樣的事情:

raw_time = '2244' 
converted_time = datetime.time(hour=int(raw_time[0:2]), minute=int(raw_time[2:4])) 
converted_time = datetime.datetime.combine(datetime.datetime.today(), converted_time) 

現在你可以用converted_time工作,加法和減法timedelta對象。據透露,你可以創建一個timedelta像這樣:

td = datetime.timedelta(hours=4) 

可能的關鍵字參數的構造函數timedelta的完整列表here

+0

等等,這是如何工作的?以及在此之前在代碼中的位置? – Amp231 2011-05-11 04:35:08

+1

javapro1:因爲你沒有提供任何代碼,所以很難說「代碼在哪裏」。 – 2011-05-11 04:45:18

+0

第一篇文章更新了代碼。這就是我現在所擁有的 – Amp231 2011-05-11 04:55:06

1
from dateutil.parser import parse 
time_today = parse("08:00") 

from dateutil.relativedelta import relativedelta 
required_time = time_today-relativedelta(minutes=35) 

print required_time 
datetime.datetime(2011, 5, 11, 7, 25) 
1

這不像其他兩個真正的答案,但日期和時間在Python打交道時,我使用的理念:儘快轉換爲datetime對象從用戶獲取後,只有轉換回當您將值呈現給用戶時,將其轉換爲字符串。

您需要的大部分日期/時間數學可以通過日期時間對象和它們的表兄弟timedelta對象完成。除非你需要timedeltas與其他timedeltas的比率,但那是另一回事。

相關問題