2013-04-01 61 views
1

我有2 datetime對象:Python:如何獲得HH:MM格式的2個日期的差異?

a 
datetime.datetime(2013,2,11,15,35) 

b 
datetime.datetime(2013,2,11,18,55) 

不同的是3:20

我怎樣才能在Python獲得此?

我做的:

(b-a).seconds/3600 

,但我得到的3改爲3:20

+0

可能重複http://stackoverflow.com/questions/538666/python-format-timedelta-to-string) – Dikei

回答

5

是人工建築是否可以接受?如果你減去兩個日期時間,你會得到一個timedelta對象。然後,只需從搶值:

>>> diff = b - a 
>>> diff 
datetime.timedelta(0, 12000) 

>>> hrs = diff.seconds/3600 
>>> hrs 
3 
>>> mins = diff.seconds % 3600/60 
>>> mins 
20 
>>> "%s:%s" % (hrs, mins) 
'3:20' 
+0

謝謝。你能否展示我如何添加timedelta對象?例如,我得到了date_a和date_b的差異,然後是date_c和date_d的差異,然後我想總結差異。 – alwbtc

+1

@alwbtc用'+'添加:'(date_b - date_a)+(date_d - date_c)'。 – glglgl

+1

diff1 + diff2是否可以 –

2
>>> diff = b - a 
>>> diff 
datetime.timedelta(0, 12000) 
>>> (datetime.datetime(2010, 1, 1, 0, 0, 0) + diff).strftime("%H:%M") 
'03:20' 

可能還長的路要走。

0

也許我想的小時:

(b-a).days*24 +(b-a).seconds/3600 

這裏是另一種方式:

x = (b-a).seconds/3600.0 + (b-a).days*24 
hours = int(x) 
mins = int((x - hours)*60) 
[Python的格式timedelta到字符串(的
相關問題