如何在Lua中以格式字符串获取本地时间

时间:2019-04-02 10:45:32

标签: lua datetime-format

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

我不知道如何使用Lua的标准功能os.date()os.time()来实现这一目标。

2 个答案:

答案 0 :(得分:5)

os.date是您要寻找的功能。它的第一个可选参数format可以满足您的要求:

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

摘自os.date上的Lua 5.3手册:

  

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

     

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

     

如果格式以“!”开头,则日期采用世界标准时间进行格式化。

     

如果format不是“ * t”,则date以字符串形式返回日期,其格式与ISO C函数strftime相同。

您可以了解有关C的strftime here的格式化规则的更多信息。

万一您由于任何原因而无法获得当地时间,只需添加所需的偏移量即可。

local timeShift = 3 * 60 * 60  -- +3 hours
os.date('%Y-%m-%d %H:%M:%S', os.time() + timeShift)
--> 2019-04-02 18:24:15 for 15:24:15 UTC

答案 1 :(得分:0)

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

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