将秒转换为分钟和秒

Joh*_*aup 7 python string time tkinter

我在python 2.7中为一个定时器程序编写了一些代码.缺点是结果是几秒钟,我需要它Minutes:Seconds.我试图格式化时间无济于事.有人可以帮忙吗?"

from Tkinter import *
import time

root = Tk()
root.title("Timer")
canvas = Canvas(root)
canvas.pack()

time=1

def tick():

    canvas.delete(ALL)
    global time
    time += 10


    if time >= 120:

        canvas.create_text(180,140, font = ("Calibri",200),text=time,fill='red')
    else:

        canvas.create_text(180,140, font = ("Calibri",200),text=time,fill='green')
    if time == 1000:
        time = 0
        tick()
    else:
        canvas.after(1000, tick)

def reset():
    global time
    time = 0

def close_window():
    root.destroy()

b = Button(root,text="Reset", command=reset)
c = Button(root,text="Quit", command=close_window) 
b.pack(side = LEFT)
c.pack(side = RIGHT)
canvas.after(1, tick)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

Jiv*_*van 11

您可以使用 datetime.timedelta

import datetime
number_of_seconds = 1000
str(datetime.timedelta(seconds=number_of_seconds))

# output
'0:16:40'
Run Code Online (Sandbox Code Playgroud)

或者甚至更好,因为你只想要mm:ss,你可以使用time.strftime

import time
number_of_seconds = 1000
time.strftime("%M:%S", time.gmtime(number_of_seconds))

# output
'16:40'
Run Code Online (Sandbox Code Playgroud)

文档可用于日期时间模块时间模块.


小智 4

要将秒转换为分钟和秒,可以使用以下divmod函数:

>>> time = 1000 # 1000 seconds
>>> divmod(1000, 60)
(16, 40)
>>>
Run Code Online (Sandbox Code Playgroud)

输出元组中的第一个数字是分钟,第二个数字是剩余的秒数。然后,您可以使用str.format此元组将其转换为您想要的字符串:

>>> time = 1000
>>> '{}:{}'.format(*divmod(time, 60))
'16:40'
>>>
Run Code Online (Sandbox Code Playgroud)