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

Python如何精准记录程序启动后的时分秒及毫秒并写入文件

问题分析与解决方案
  • 原代码核心错误:
    1. strptime是将字符串解析为datetime对象的方法,你却反向把datetime.now()转成字符串再解析,逻辑完全颠倒。
    2. datetime.now()默认输出格式(如2024-05-20 15:30:45.123456)和你指定的%H-%M-%S-%f不匹配,必然触发格式错误。
    3. 你的实际需求是程序启动后的累计运行时间,而非当前系统时间,用datetime.now()直接处理无法实现目标。

正确实现方案

核心思路

  1. 程序启动时记录初始时间基准
  2. 每次需要记录时,计算当前时间与初始时间的差值
  3. 将时间差格式化为h:m:s:ms格式

示例代码

import datetime
import time

# 程序启动时记录初始时间
start_time = datetime.datetime.now()

# 模拟业务运行(替换为你的实际代码逻辑)
time.sleep(5.123)

# 计算累计运行时间差
elapsed = datetime.datetime.now() - start_time

# 拆分时间差为小时、分钟、秒、毫秒
hours = elapsed.seconds // 3600
remaining_secs = elapsed.seconds % 3600
minutes = remaining_secs // 60
seconds = remaining_secs % 60
milliseconds = elapsed.microseconds // 1000

# 格式化为目标字符串
formatted_time = f"{hours}:{minutes}:{seconds}:{milliseconds}"

# 写入日志文件
with open("log.txt", "a") as log_file:
    log_file.write(formatted_time + "\n")

代码说明

  • start_time存储程序启动瞬间的时间,作为后续计算累计时间的基准
  • elapsed是timedelta类型的时间差对象,包含运行的总秒数和微秒数
  • 通过整除、取余运算拆分出小时、分钟、秒,微秒除以1000转换为毫秒
  • 最终输出完全符合h:m:s:ms格式(示例输出:0:0:5:123)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 10:24:52