有一个程序可以让日期倒计时。我不想打印毫秒,请帮助这里是我在python中的程序:
import time
import datetime
while (datetime.datetime.now() != datetime.datetime (2018,5,5,19,30)):
print (datetime.datetime (2018,5,5,19,30) - datetime.datetime.now())
time.sleep(1.0)
这是我目前的输出:54 days, 3:54:53.603289
想:54 days, 3:54:53
,但不知道该怎么做。
答案 0 :(得分:3)
您正在寻找datetime.replace(microsecond=0)
,它将:
返回具有相同属性的日期时间,但这些属性除外 由任何关键字参数给出新值的属性 指定。
import time
import datetime
while (datetime.datetime.now() != datetime.datetime (2018,5,5,19,30)):
print (datetime.datetime (2018,5,5,19,30) - datetime.datetime.now().replace(microsecond=0))
time.sleep(1.0)
输出:
54 days, 3:49:31
54 days, 3:49:30
54 days, 3:49:29
54 days, 3:49:28
54 days, 3:49:27
54 days, 3:49:26
54 days, 3:49:25
54 days, 3:49:24
54 days, 3:49:23
答案 1 :(得分:0)
正如您所发现的,timedelta
对象没有良好的格式化选项。我建议您预先计算end_time
并使用<
,而不是等待匹配的时间。如果你的电脑正忙于第二次,你的循环可能会错过匹配。通过使用<
,它也可以捕获它:
from datetime import datetime
import time
end_time = datetime(2018, 5, 5, 19, 30)
while datetime.now() < end_time:
print(end_time - datetime.now().replace(microsecond=0))
time.sleep(1.0)