8

我正在尝试将持续时间(以秒为单位)格式化为时间,我得到的结果表明我应该在某处考虑一个时代。我预计os.date("%X", 0)会产生“00:00:00”,但它返回“20:00:00”以及“12/31/69”的日期值(虽然我不需要日历日期)。

有没有一种标准的方法来获取一个持续时间字符串,它会导致 0 秒产生一个代表总共零秒的时钟?我似乎无法在任何地方找到我正在尝试做的事情的例子。

谢谢

4

2 回答 2

16

在大多数系统(即 POSIX)中,os.date("%X",0)为您提供时代的时间,即 00:00:00(协调世界时,UTC),1970 年 1 月 1 日。20:00:00因为您处于不同的时区。

要强制使用 UTC 而不是您的时区,请以!. 这在手册中有所提及。

所以,os.date("!%X",0)根据00:00:00需要使用。它可以在少于一天 (86400) 的任何秒数内工作。例如,os.date("!%X",70)给出00:01:10:1 分 10 秒。

于 2013-07-05T03:44:50.367 回答
5

Lua 没有庞大的标准库:

string.format("%.2d:%.2d:%.2d", s/(60*60), s/60%60, s%60)
于 2013-07-04T16:06:52.923 回答