我試圖格式化一個持續時間(以秒爲單位)作爲一個時間,我得到的結果表明我應該考慮某個時代的時代。我預計os.date("%X", 0)
產生「00:00:00」,但它返回「20:00:00」以及日期值「12/31/69」(但我不需要日曆日期)。使用Lua格式0秒爲00:00:00
有沒有一種標準的方式來獲得一個持續時間字符串,導致0秒產生一個時鐘,總共爲零秒?我似乎無法找到我想要做的任何地方的例子。
感謝
我試圖格式化一個持續時間(以秒爲單位)作爲一個時間,我得到的結果表明我應該考慮某個時代的時代。我預計os.date("%X", 0)
產生「00:00:00」,但它返回「20:00:00」以及日期值「12/31/69」(但我不需要日曆日期)。使用Lua格式0秒爲00:00:00
有沒有一種標準的方式來獲得一個持續時間字符串,導致0秒產生一個時鐘,總共爲零秒?我似乎無法找到我想要做的任何地方的例子。
感謝
在大多數系統中(即POSIX),os.date("%X",0)
給你的時代,這是00:00:00的時間(世界協調時間,UTC),1970年1月1日。 由於您處於不同的時區,因此您得到20:00:00
。
要強制使用UTC而不是您的時區,請使用!
開始格式。這在manual中提到。
因此,根據需要使用os.date("!%X",0)
來得到00:00:00
。它將以小於一天的任何秒數工作(86400)。例如,os.date("!%X",70)
給出00:01:10
:1分10秒。
Lua中沒有一個龐大的標準庫:
string.format("%.2d:%.2d:%.2d", s/(60*60), s/60%60, s%60)
固定操作順序後,它工作正常:s /(60 * 60) – Patillac
是的,對不起,我沒有測試它。另外我錯過了分鐘的模數。 – mxcl
'os.date'可以做到。看到我的答案。 – lhf