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

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表格实现

如果习惯用表格做批量统计,可直接用公式计算:

  • 操作步骤:
    1. 假设A列存储开始时间戳,B列存储结束时间戳,两个列的时间戳时区一致
    2. C列输入公式计算耗时秒数:=(DATETIMEVALUE(LEFT(B1,19)) - DATETIMEVALUE(LEFT(A1,19))) * 86400
    3. 如需转成小时数,直接把公式结果除以3600即可

注意事项

  • 若两个时间戳时区不同,Python实现会自动完成时区换算,结果依然准确
  • 支持跨天、跨月的耗时统计,完全覆盖几秒到几十小时的设备运行时长统计需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:45:03