【问题标题】:how to convert seconds to iso 8601 format in Lua?如何在 Lua 中将秒转换为 iso 8601 格式?
【发布时间】:2018-02-21 12:32:21
【问题描述】:

我想在 Lua 中将秒转换为 iso 8601 格式,但我找不到它,谁能帮忙? 例如:60.001 秒 --> PT1M0.001S

【问题讨论】:

  • 您是否尝试过编写代码来做到这一点?我不认为内置插件会为你做这件事。

标签: time lua intervals iso8601


【解决方案1】:

开始

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

【讨论】:

  • 我收到错误,因为上述解决方案的“字段 'sec' 不是整数”。
【解决方案2】:

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

如果您将使用时间戳,也许该解决方案会有所帮助?

Timestamp to ISO 8601 in Lua

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    相关资源
    最近更新 更多