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

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

是否有一种标准方法可以获得一个时间持续字符串,使0秒产生表示总共零秒的时钟?我似乎找不到任何我正在尝试做的示例。

谢谢

点赞
用户6444
用户6444

Lua 没有一个庞大的标准库:

string.format("%.2d:%.2d:%.2d", s/(60*60), s/60%60, s%60)
2013-07-04 16:06:52
用户107090
用户107090

在大多数系统(如 POSIX)中,os.date("%X",0)会给你纪元时代的时间,即1970年1月1日00:00:00(世界协调时间,UTC)。

你的答案是 20:00:00,因为你处于不同的时区。

要强制使用UTC而不是你的时区,请以“!”开头开始格式化。这在手册中有提到。

因此,使用os.date("!%X",0)来获取所需的00:00:00。它将适用于一天(86400)以内的任何秒数。例如,os.date("!%X",70)给出00:01:10:1分钟10秒。

2013-07-05 03:44:50