JavaScript中计算两个ISO格式时间戳之间耗时的实现方法
设备运行耗时计算实现方案
你需要处理的是带时区偏移的ISO 8601标准时间戳,直接通过内置工具解析为时间对象后做差,即可得到秒级到小时级的精确耗时,无需手动处理时区换算。
Python实现(无需第三方依赖)
适配Python 3.7及以上版本,直接调用标准库datetime即可实现:
- 示例代码:
from datetime import datetime def calc_device_runtime(start_ts: str, end_ts: str) -> dict: # 匹配目标时间戳的解析格式,%z自动识别时区偏移量 time_format = "%Y-%m-%dT%H:%M:%S%z" start_time = datetime.strptime(start_ts, time_format) end_time = datetime.strptime(end_ts, time_format) delta = end_time - start_time # 输出多维度耗时结果适配不同统计场景 return { "总秒数": delta.total_seconds(), "分钟数": round(delta.total_seconds() / 60, 2), "小时数": round(delta.total_seconds() / 3600, 2), "可读格式": f"{delta.days}天 {delta.seconds//3600}时 {(delta.seconds%3600)//60}分 {delta.seconds%60}秒" } # 测试你提供的示例时间戳 start = "2021-10-07T12:44:10-0700" end = "2021-10-07T12:47:12-0700" print(calc_device_runtime(start, end))
- 运行结果:
{'总秒数': 182.0, '分钟数': 3.03, '小时数': 0.05, '可读格式': '0天 0时 3分 2秒'}
Excel/WPS表格实现
如果习惯用表格做批量统计,可直接用公式计算:
- 操作步骤:
- 假设A列存储开始时间戳,B列存储结束时间戳,两个列的时间戳时区一致
- C列输入公式计算耗时秒数:
=(DATETIMEVALUE(LEFT(B1,19)) - DATETIMEVALUE(LEFT(A1,19))) * 86400 - 如需转成小时数,直接把公式结果除以3600即可
注意事项
- 若两个时间戳时区不同,Python实现会自动完成时区换算,结果依然准确
- 支持跨天、跨月的耗时统计,完全覆盖几秒到几十小时的设备运行时长统计需求
内容的提问来源于stack exchange,提问作者lucifer
相关产品推荐
相关产品推荐

