2015-06-24 23 views
-1

我是python的新手。 我試圖顯示持續時間。 我所做的是:如何在Python中設置持續時間(timedelta)?

startTime = datetime.datetime.now().replace(microsecond=0) 
... <some more codes> ... 
endTime = datetime.datetime.now().replace(microsecond=0) 
durationTime = endTime - startTime 
print("The duration is " + str(durationTime)) 

輸出是=>持續時間是0點01分28秒 我能知道如何從結果中移除小時? 我要顯示=>持續時間是01:28

在此先感謝!

+1

看起來你必須自己做,如建議[在這個崗位] [1]。 [1]:http://stackoverflow.com/questions/8906926/formatting-python-timedelta-objects – skaz

+0

會'的strftime()'不在這裏工作? –

+1

'durationTime'是一個'datetime.timedelta'對象。 'strftime'不適用於'datetime.timedelta'對象。 – ssundarraj

回答

1

您可以通過將durationTime這是一個datetime.timedelta對象轉換爲datetime.time對象然後使用strftime來完成此操作。

print datetime.time(0, 0, durationTime.seconds).strftime("%M:%S") 

另一種方法是操縱字符串:

print ':'.join(str(durationTime).split(':')[1:]) 
+0

謝謝!第一種方法解決了我的問題。 :) – Yin

+0

只有在持續時間少於60秒的情況下才能工作((((((((( –

-1

這應該工作:

dt = endTime - startTime 
print('{0:0>2}:{1:0>2}'.format(dt.seconds%3600//60, dt.seconds%60)) 
+0

'durationTime'是一個'datetime.timedelta'對象。 – ssundarraj

2

如下您可以分割你的timedelta:

>>> hours, remainder = divmod(durationTime.total_seconds(), 3600) 
>>> minutes, seconds = divmod(remainder, 60) 
>>> print '%s:%s' % (minutes, seconds) 

這將使用Python的內置divmod到的秒數轉換成你的timedelta到小時,剩餘部分將用於計算分鐘和秒。然後您可以明確地打印您想要的時間單位。

相關問題