使用Lua如何获取当前日期时间(以毫秒为单位)[重复]

问题描述 投票:0回答:1

使用 Lua 如何获取当前日期时间(以毫秒为单位)。

采用这种格式“YYYY-MM-DD hh:mm:ss”。

lua
1个回答
3
投票

您可以使用

os.time()
获取当前 UNIX 时间,然后添加
os.clock()

中的毫秒数

在 Lua(JIT) 5.1 中,执行以下操作:

local date_table = os.date("*t")
local ms = string.match(tostring(os.clock()), "%d%.(%d+)")
local hour, minute, second = date_table.hour, date_table.min, date_table.sec

local year, month, day = date_table.year, date_table.month, date_table.day   -- date_table.wday to date_table.day

local result = string.format("%d-%d-%d %d:%d:%d:%s", year, month, day, hour, minute, second, ms)

print(result)
-- will print the timestamp in the format you chose with milliseconds
-- should be all good, comment on this answer if anything's wrong please c:

------------测试结果:无毫秒

$ lua -e "print(require'cjson'.encode(os.date'*t'))" | jq
{
  "hour": 2,
  "min": 42,
  "wday": 4,
  "day": 20,
  "month": 11,
  "year": 2024,
  "sec": 55,
  "yday": 325,
  "isdst": false
}
© www.soinside.com 2019 - 2024. All rights reserved.