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

如何在Lua中将本地时间作为格式化字符串获取,lua,datetime-format,Lua,Datetime Format,我需要一个格式为%Y-%m-%d%H:%m:%S的日期时间字符串 我不知道如何使用Lua的标准函数os.date()和os.time()来实现这一点。os.date是您正在寻找的函数。它的第一个可选参数format,可以满足您的要求: 操作系统日期(“%Y-%m-%d%H:%m:%S”) --> 2019-04-02 10:50:52 从Lua 5.3手册: os.date([format[,time]]) 返回一个字符串或一个包含日期和时间的表,按照给定的字符串格式进行格式化 如果格式以“!

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


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

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

操作系统日期(“%Y-%m-%d%H:%m:%S”) --> 2019-04-02 10:50:52 从Lua 5.3手册:

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

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

如果格式以“!”开头,然后将日期格式化为协调世界时

如果格式不是“*t”,则date将日期作为字符串返回,并根据与ISO C函数strftime相同的规则进行格式化

您可以进一步了解C的
strftime
格式规则

如果由于任何原因无法获得当地时间,只需添加所需的偏移量即可

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
我使用lib。获取本地时间-


date(true):addminutes(“您的偏移量”):fmt(“%Y-%m-%d%H:%m:%S”)

os.date(“%Y-%m-%d%H:%m:%S”)是UTC时间。我需要本地时间
os.date
给出系统的本地时间,除非
格式
开头。它为您返回UTC可能还有其他原因。您在哪个平台上,系统时间和时区设置是否适当?您可以在这里查看Lua的
os.time
实现:如果您必须提供该库的偏移量,您也可以使用带有偏移量的os.date()。。。