pythontimeformatelapsed

How to format elapsed time from seconds to hours, minutes, seconds and milliseconds in Python?


How can I format the time elapsed from seconds to hours, mins, seconds?

My code:

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

Actual Output:

0.232999801636

Desired/Expected output:

00:00:00.23 

Solution

  • If you want to include times like 0.232999801636 as in your input:

    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))
    

    Example:

    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