繁体   English   中英

如何在Lua中将秒转换为iso 8601格式?

[英]how to convert seconds to iso 8601 format in Lua?

我想在Lua中将秒转换为iso 8601格式,但是我找不到它,有人可以帮忙吗? 例如:60.001秒-> PT1M0.001S

您只想使用60s / 180 s这样的时间段。

如果您将使用时间戳记,那么该解决方案可能会有所帮助?

Lua中ISO 8601的时间戳

从...开始

t = os.date("*t",os.time({day=1, month=1, year=2000, hour=0, min=0, sec=60.001}))

然后建立从字段中的字符串t ,从减去1 t.dayt.month从和2000 t.year os.time的调用需要进行算术运算,这是很无聊的部分,但不幸的是,它不支持几分之一秒。

上面的代码在Lua 5.3之前有效,但现在在sec不包含整数时会引发错误。 更好的解决方案是

sec = 60.001
fsec = sec%1
sec = math.floor(sec)
t = os.date("*t",os.time({day=1, month=1, year=2000, hour=0, min=0, sec=sec}))
t.sec = t.sec + fsec

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM