我正在尝试将持续时间(以秒为单位)格式化为时间,并且我得到的结果表明我应该在某个地方考虑一个时期。我希望os.date("%X", 0)
生成“00:00:00”,但它返回“20:00:00”以及日期值“12/31/69”(我不需要日历日期虽然)。
是否有一种标准的方法来获取一个持续时间字符串,该字符串导致0秒产生一个代表总共零秒的时钟?我似乎无法在我想要做的任何地方找到一个例子。
由于
答案 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)