【问题标题】:print time every n seconds using datetime and % operator使用 datetime 和 % 运算符每 n 秒打印一次时间
【发布时间】:2022-12-31 02:47:45
【问题描述】:

如何使用 % 运算符和 datetime 包每 10 秒打印一次时间?这只打印一次......

from datetime import datetime, timezone, timedelta
import time

now_utc = datetime.now(timezone.utc)

while True:
    if (now_utc - datetime.now(timezone.utc)).total_seconds() % 10 == 0:
        print(time.ctime())

【问题讨论】:

  • 这确实期望浮点值精确等于 0.0。这个循环也非常积极地旋转,完全消耗了线程。
  • 事实上:第一个round你的增量,然后实现一种每 10 秒只打印一次日期的方法。
  • 此处报告时间的最大可容忍误差是多少?
  • 在我的机器上工作。只删除了 timedelta 作为不必要的依赖项。
  • @tadman 什么是不积极旋转消耗整个线程的更好方法?理想情况下,我只是想比较一个时间戳,如果它与前一个时间戳相比大于 10 秒...打印时间

标签: python datetime


【解决方案1】:

要每 10 秒打印一次时间,您可以使用时间模块中的 sleep() 函数将循环暂停所需的时间间隔。

import time
from datetime import datetime, timezone

while True:
    now_utc = datetime.now(timezone.utc)
    if (now_utc - datetime.now(timezone.utc)).total_seconds() % 10 == 0:
        print(time.ctime())
    time.sleep(10)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    • 2013-02-23
    • 1970-01-01
    • 2018-01-06
    相关资源
    最近更新 更多