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

如何在Lua及其他编程语言中将字符串时间戳转为指定结构数组

实现思路

核心逻辑是通过正则捕获时间戳各分段的数值,转换为整数后赋值给对应字段即可,适配示例中HH:MM:S.sss这类补零不统一的格式。

正则匹配规则

使用分组捕获的正则表达式:^(%d+):(%d+):(%d+)%.(%d+)$
四个捕获组按顺序对应:小时、分钟、秒、毫秒

Lua 实现代码

local t = "00:00:0.031"
-- 正则匹配捕获四个分段
local h, m, s, ms = string.match(t, "^(%d+):(%d+):(%d+)%.(%d+)$")
-- 转整数后构造目标表
local ft = {
    hours = tonumber(h),
    minutes = tonumber(m),
    seconds = tonumber(s),
    milliseconds = tonumber(ms)
}

Python 实现示例(供参考)

import re

time_str = "00:00:0.031"
match_obj = re.match(r"^(\d+):(\d+):(\d+)\.(\d+)$", time_str)
if match_obj:
    h, m, s, ms = map(int, match_obj.groups())
    ft = {
        "hours": h,
        "minutes": m,
        "seconds": s,
        "milliseconds": ms
    }

边界情况说明

  • 如果毫秒段不足3位(比如00:00:0.3),捕获到的数值是3而非300,符合原字符串的字面含义,需要补位的话可以自行对毫秒段做左补零到3位的处理后再转整数
  • 如果存在小时/分钟/秒大于等于60的非法输入,可自行在捕获后加数值校验逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:54:07