我需要一个日期时间字符串,格式为%Y-%m-%d %H:%M:%S
。
我无法理解如何使用Lua的标准函数os.date()
和os.time()
来实现这个目标。
我需要一个日期时间字符串,格式为%Y-%m-%d %H:%M:%S
。
我无法理解如何使用Lua的标准函数os.date()
和os.time()
来实现这个目标。
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”,则日期将按照与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 https://github.com/Tieske/date。获取本地时间 -
date(true):addminutes("你的偏移量"):fmt('%Y-%m-%d %H:%M:%S')
,
os.date
函数返回系统本地时间,除非format
以!
开头。如果它对您返回的是UTC时间,则可能有其他原因。您所在的平台是什么?系统时间和时区是否设置正确?您可以在此处查看Lua的os.time
函数的实现:https://github.com/lua/lua/blob/d12262068d689eacc452a459a021df0ad8f6d46c/loslib.c#L293 - cfillion