2015-01-05 10 views
10

सेकंड से घंटों, मिनट, सेकेंड से अलग समय को कैसे प्रारूपित कर सकता है?पायथन: प्रारूप समय सेकंड से घंटे, मिनट और sceconds

मेरे कोड:

start = time.time() 
... do something 
elapsed = (time.time() - start) 

वास्तविक आउटपुट:

0.232999801636 

वांछित/अपेक्षित उत्पादन:

00:00:00.23 

उत्तर

15

आप के रूप 0.232999801636 की तरह बार शामिल करना चाहते हैं अपने इनपुट:

import time 
start = time.time() 
end = time.time() 
hours, rem = divmod(end-start, 3600) 
minutes, seconds = divmod(rem, 60) 
print("{:0>2}:{:0>2}:{:05.2f}".format(int(hours),int(minutes),seconds)) 


In [12]: def timer(start,end): 
    ....:   hours, rem = divmod(end-start, 3600) 
    ....:   minutes, seconds = divmod(rem, 60) 
    ....:   print("{:0>2}:{:0>2}:{:05.2f}".format(int(hours),int(minutes),seconds)) 
    ....:  

In [13]: timer(12345.242,12356.434) 
00:00:11.19 
In [14]: timer(12300.242,12600.5452) 
00:05:00.30 
In [19]: timer(0.343,86500.8743) 
24:01:40.53 
In [16]: timer(0.343,865000.8743) 
240:16:40.53  
In [17]: timer(0,0.232999801636) 
00:00:00.23 
1
import time 
start = time.time() 
#do something 
end = time.time() 
temp = end-start 
print(temp) 
hours = temp//3600 
temp = temp - 3600*hours 
minutes = temp//60 
seconds = temp - 60*minutes 
print('%d:%d:%d' %(hours,minutes,seconds)) 
+0

मैं 'अस्थायी स्थापना करके इसका परीक्षण = 65432' तो मैं नहीं देख सकता था कि कुछ करने के लिए उत्पादन है कि काम करता है बस कुछ ही सेकंड डबल लापता हो जाएगा शून्य। @ पैड्राइक कनिंघम – implicati0n

57

आप timedelta का फायदा उठाने सकता है:

>>> from datetime import timedelta 
>>> str(timedelta(seconds=elapsed)) 
'0:00:00.233000' 
+2

@ पैड्राइक कनिंघम: यह काम करता है: 'str (timedelta (सेकंड = 86401))' -> '1 दिन, 0: 00: 01'' – jfs

+2

यह सही जवाब क्यों नहीं है? हर कोई timedelta के प्रभाव का वर्णन कर रहा है ... – 43matthew

संबंधित मुद्दे