【发布时间】:2018-02-21 12:32:21
【问题描述】:
我想在 Lua 中将秒转换为 iso 8601 格式,但我找不到它,谁能帮忙? 例如:60.001 秒 --> PT1M0.001S
【问题讨论】:
-
您是否尝试过编写代码来做到这一点?我不认为内置插件会为你做这件事。
标签: time lua intervals iso8601
我想在 Lua 中将秒转换为 iso 8601 格式,但我找不到它,谁能帮忙? 例如:60.001 秒 --> PT1M0.001S
【问题讨论】:
标签: time lua intervals iso8601
开始
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
【讨论】:
【讨论】: