如何在Python中格式化日期时间输出?

时间:2018-03-12 20:37:06

标签: python

有一个程序可以让日期倒计时。我不想打印毫秒,请帮助这里是我在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,但不知道该怎么做。

2 个答案:

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