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

我想在Lua中将秒转换为ISO 8601格式,但我找不到方法,请问有人能够帮忙吗? 举例:60.001 秒 --> PT1M0.001S

点赞
用户9369297
用户9369297

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

如果你使用时间戳,也许这个解决方案可以帮到你?

Lua中的ISO 8601时间戳转换

2018-02-21 13:58:59
用户107090
用户107090
开始于

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


然后根据`t`中的字段构建字符串,从`t.day`和`t.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

```

2018-02-21 16:50:05