首页 > 解决方案 > 如何在 LUA 脚本中正确格式化日期 - 05292020

问题描述

我在格式化这个 LUA 脚本中的日期时遇到了一些困难。我希望它以以下格式输出当前日期 - 05292020。但是,我无法正确格式化年份,所以我的输出是052920。我一直在广泛搜索以找到解决方案,但我真的坚持这个。谁能指出我正确的方向?先感谢您!

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


    -- Take the first 8 characters only (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  

标签: lua

解决方案


为了我的需要,我这样做:

-- CURRENT DATE AND TIME
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 引擎。


推荐阅读