如何在Lua中将秒转换为iso 8601格式?

时间:2018-02-21 12:32:21

标签: time lua intervals iso8601

我想在Lua中将秒转换为iso 8601格式,但是我无法找到它,任何人都可以帮忙吗? 例如:60.001秒 - > PT1M0.001S

2 个答案:

答案 0 :(得分:0)

您只想使用60秒/ 180秒这样的时间段。

如果你要使用时间戳,也许该解决方案可以提供帮助吗?

this guide

答案 1 :(得分:0)

开始
t = os.date("*t",os.time({day=1, month=1, year=2000, hour=0, min=0, sec=60.001}))

然后从t中的字段构建字符串,从t.dayt.month减去1,从t.year减去2000。对os.time的调用处理算术,这是无聊的部分,但遗憾的是不支持几秒钟。

上面的代码在Lua 5.3之前有效,但是当sec不包含整数时,它现在会引发错误。 更好的解决方案是

sec = 60.001
fsec = sec%1
sec = math.floor(sec)
t = os.date("*t",os.time({day=1, month=1, year=2000, hour=0, min=0, sec=sec}))
t.sec = t.sec + fsec