You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何休眠至指定时间戳并打印剩余时分秒?

Python实现休眠至指定时间并显示剩余时长

核心思路

  • 将目标时间字符串转换为Python可识别的datetime对象
  • 计算当前时间与目标时间的差值,判断目标时间是否在未来
  • 循环更新剩余时长并格式化展示,直到到达目标时间点

实现代码

import datetime
import time

# 你的目标时间字符串
target_time_str = "23-03-2023 10:11:00"
# 按"日-月-年 时:分:秒"格式解析为datetime对象
target_time = datetime.datetime.strptime(target_time_str, "%d-%m-%Y %H:%M:%S")

while True:
    # 获取当前时间
    current_time = datetime.datetime.now()
    # 计算目标时间与当前时间的差值
    time_diff = target_time - current_time
    
    # 若目标时间已过,终止循环
    if time_diff.total_seconds() <= 0:
        print("已到达目标时间")
        break
    
    # 将总秒数转换为小时-分钟-秒格式
    total_seconds = int(time_diff.total_seconds())
    hours = total_seconds // 3600
    minutes = (total_seconds % 3600) // 60
    seconds = total_seconds % 60
    
    # 用\r实现同一行刷新打印,避免刷屏
    print(f"剩余时间: {hours:02d}-{minutes:02d}-{seconds:02d}", end="\r")
    
    # 每秒更新一次剩余时间,降低资源占用
    time.sleep(1)

关键细节说明

  1. 时间格式解析:strptime的格式串%d-%m-%Y %H:%M:%S完全匹配你的时间字符串规则:

    • %d:两位数字的日期(如23)
    • %m:两位数字的月份(如03)
    • %Y:四位数字的年份(如2023)
    • %H:24小时制的小时(如10)
    • %M:两位数字的分钟(如11)
    • %S:两位数字的秒数(如00)
      这一步是把人类可读的字符串转成程序能计算的时间对象,是所有后续操作的基础。
  2. 时间差计算:target_time - current_time得到的timedelta对象,包含了两个时间的精确差值。通过total_seconds()可以将差值转为总秒数,方便拆分出小时、分钟、秒。

  3. 循环刷新逻辑:用while True持续检测时间,每次休眠1秒后重新计算差值,确保剩余时长实时更新。end="\r"让新的打印内容覆盖当前行,避免产生大量冗余输出。

  4. 边界处理:加入时间差小于等于0的判断,防止目标时间已过时程序陷入无限循环。

与你提到的示例代码区别

你看到的示例是计算已经消耗的时间(当前时间减过去时间),而我们的需求是计算到未来时间的剩余时间(目标时间减当前时间),两者逻辑方向完全相反,所以那个示例并不适用于你的场景。

内容的提问来源于stack exchange,提问作者realsuspection

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 00:10:21