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

求助:如何将带姓名的(n)h (n)m (n)s时间列表转为hh:ss:mm格式?

把h/m/s格式时间转成hh:ss:mm的两种方法

方法一:Excel公式处理

如果你的数据在Excel的A列(比如A2单元格内容是「Ben 1h 23m 45s」),可以用以下步骤转换:

  1. 提取时间各部分:

    • 小时数(支持1位/2位):=IFERROR(--LEFT(MID(A2,FIND(" ",A2)+1,FIND("h",A2)-FIND(" ",A2)-1),LEN(MID(A2,FIND(" ",A2)+1,FIND("h",A2)-FIND(" ",A2)-1))),0)
    • 分钟数:=IFERROR(--LEFT(MID(A2,FIND("h",A2)+1,FIND("m",A2)-FIND("h",A2)-1),LEN(MID(A2,FIND("h",A2)+1,FIND("m",A2)-FIND("h",A2)-1))),0)
    • 秒数:=IFERROR(--LEFT(MID(A2,FIND("m",A2)+1,FIND("s",A2)-FIND("m",A2)-1),LEN(MID(A2,FIND("m",A2)+1,FIND("s",A2)-FIND("m",A2)-1))),0)
  2. 拼接成目标格式:
    把上面三个公式分别放在B、C、D列,然后在E列用公式拼接:
    =TEXT(B2,"00")&":"&TEXT(D2,"00")&":"&TEXT(C2,"00")
    若姓名和时间在同一单元格,可先用=LEFT(A2,FIND(" ",A2)-1)提取姓名,再和转换后的时间拼接。

方法二:Python批量处理

如果数据量较大,用Python脚本处理更高效,直接写个小脚本就能批量转换:

import re

def convert_time(line):
    # 拆分姓名和时间
    name_part = re.match(r'(.+?)\s+\d+h', line).group(1).strip()
    # 提取时、分、秒并补零
    h = re.search(r'(\d+)h', line).group(1).zfill(2)
    m = re.search(r'(\d+)m', line).group(1).zfill(2)
    s = re.search(r'(\d+)s', line).group(1).zfill(2)
    # 按hh:ss:mm格式拼接返回
    return f"{name_part} {h}:{s}:{m}"

# 测试示例
test_data = [
    "Ben 1h 23m 45s",
    "Alice 10h 5m 8s",
    "Bob 0h 15m 30s"
]

for item in test_data:
    print(convert_time(item))

运行后输出:

Ben 01:45:23
Alice 10:08:05
Bob 00:30:15

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:01:16