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

Pat*_*lac 8 time lua duration

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

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

谢谢

lhf*_*lhf 16

在大多数系统(即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秒.


mxc*_*xcl 5

Lua没有庞大的标准库:

string.format("%.2d:%.2d:%.2d", s/(60*60), s/60%60, s%60)
Run Code Online (Sandbox Code Playgroud)

  • 在修复操作顺序后,此工作正常:s /(60*60) (2认同)
  • `os.date`可以做到.看我的回答. (2认同)