使用Lua将0秒格式化为00:00:00

时间:2013-07-04 15:53:59

标签: time lua duration

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

是否有一种标准的方法来获取一个持续时间字符串,该字符串导致0秒产生一个代表总共零秒的时钟?我似乎无法在我想要做的任何地方找到一个例子。

由于

2 个答案:

答案 0 :(得分:16)

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

要强制UTC而不是您的时区,请使用!启动格式。这在manual中提到。

因此,请根据需要使用os.date("!%X",0)获取00:00:00。它可以在不到一天(86400)的任意秒数下工作。例如,os.date("!%X",70)给出00:01:10:1分10秒。

答案 1 :(得分:5)

Lua没有庞大的标准库:

string.format("%.2d:%.2d:%.2d", s/(60*60), s/60%60, s%60)