如何在Lua中将本地时间格式化为字符串

我需要一个格式为%Y-%m-%d %H:%M:%S的日期时间字符串。

我无法弄清如何使用Lua的标准函数os.date()os.time()实现此目的。

点赞
用户796375
用户796375

os.date函数是你要找的函数。它的第一个可选参数format可以实现你想要的:

os.date('%Y-%m-%d %H:%M:%S')
--> 2019-04-02 10:50:52

在Lua 5.3手册的 os.date 中有更多信息:

os.date ([format [, time]])

返回一个字符串或包含日期和时间的表,根据给定的字符串格式进行格式化。

如果格式以 '!' 开头,则日期将根据协调世界时进行格式化。

如果格式不是 "*t",则date返回一个字符串,格式与 ISO C函数strftime相同。

你可以在这里了解更多有关 C strftime 的格式规则。

如果出于任何原因你无法获得当地时间,你可以简单地添加所需的偏移量。

local timeShift = 3 * 60 * 60  -- +3小时
os.date('%Y-%m-%d %H:%M:%S', os.time() + timeShift)
--> 2019-04-02 18:24:15(对于15:24:15 UTC)
2019-04-02 10:52:45
用户11248817
用户11248817

我使用 lib https://github.com/Tieske/date。获取本地时间 -

date(true):addminutes("your offset"):fmt('%Y-%m-%d %H:%M:%S')

2019-04-02 13:18:47