如何在Raspberry Pi Pico上用MicroPython计算两个时间的差值?
解决Raspberry Pi Pico MicroPython计算时间差的问题
MicroPython针对Raspberry Pi Pico的固件里没有完整的datetime模块,strptime这类方法更是不存在,所以你之前的代码会报"no module named datetime"错误。
针对你已经有"00:00:00"格式的时分秒字符串的情况,可以手动解析成总秒数来计算时间差,完全不需要额外模块,代码示例如下:
def time_str_to_seconds(time_str): # 将"HH:MM:SS"格式的字符串转换为总秒数 hh, mm, ss = map(int, time_str.split(':')) return hh * 3600 + mm * 60 + ss def elapsed_time(start, end): start_sec = time_str_to_seconds(start) end_sec = time_str_to_seconds(end) # 处理跨天情况(比如结束时间比开始时间小,说明过了一天) diff_sec = end_sec - start_sec if diff_sec < 0: diff_sec += 86400 # 一天的总秒数 # 可选:将秒数差值转回"HH:MM:SS"格式 hours = diff_sec // 3600 minutes = (diff_sec % 3600) // 60 seconds = diff_sec % 60 return f"{hours:02d}:{minutes:02d}:{seconds:02d}"
如果你的应用场景不会出现跨天的情况,可以直接去掉跨天判断的代码,简化逻辑。
另外,MicroPython提供了轻量的utime模块,如果你后续需要更基础的时间处理(比如获取系统时间元组),可以直接使用这个模块,但针对你当前的需求,手动解析字符串转秒数的方法最直接高效。
内容的提问来源于stack exchange,提问作者JustTryingToLearnPlease
相关产品推荐
相关产品推荐

