如何在LUA脚本中正确格式化日期-05292020

我在这个LUA脚本中遇到了一些日期格式化的困难。我想以以下格式输出当前日期-05292020。但是,我无法正确格式化年份,因此我的输出是052920。我一直在广泛搜索,希望找到解决方案,但我真的卡在了这里。有人能指点我一下吗?先感谢您!

function OnEvent(event, arg, family)
  if event == "G_PRESSED" and arg == 1 then

    -- 只取前8个字符(1,8)
    local date = string.sub(GetDate(), 1, 8)
    for i = 1, #date do
      local ch = date:sub(i,i)
      if ch == "-" then
        PressAndReleaseKey("minus")
      elseif ch == "," then
        PressAndReleaseKey("comma")
      elseif ch == "." then
        PressAndReleaseKey("period")
      elseif ch == "/" then
      --  PressAndReleaseKey("slash")
      elseif ch == " " then
        PressAndReleaseKey("spacebar")
      elseif ch == ":" then
        PressKey("lshift")
        Sleep(10)
        PressAndReleaseKey("semicolon")
        ReleaseKey("lshift")
      elseif ch == ch:lower() then
        PressAndReleaseKey(ch)
      else
        PressKey("lshift")
        Sleep(10)
        PressAndReleaseKey(ch:lower())
        ReleaseKey("lshift")
      end
    end

  end
end
点赞
用户870125
用户870125

我按照我的需要这么做:

--获取当前日期和时间
local myyear = os.date("*t").year
local mymonth = os.date("*t").month; if mymonth < 10 then mymonth = "0"..mymonth end
local myday = os.date("*t").day; if myday < 10 then myday = "0"..myday end
local myhour = os.date("*t").hour; if myhour < 10 then myhour = "0"..myhour end
local mymin = os.date("*t").min; if mymin < 10 then mymin = "0"..mymin end
local mysec = os.date("*t").sec; if mysec < 10 then mysec = "0"..mysec end
local mytime = myyear..mymonth..myday.."_"..myhour..mymin..mysec
print(mytime)

希望这不太复杂,对你有帮助?

PS: 我使用的是使用Lua的Gideros引擎。

2020-05-30 00:31:27
用户1008957
用户1008957

这应该是使用正确的格式和 os.date 来处理的问题,像这样:

print(os.date("%d%m%Y"))
2020-05-31 08:17:49