Lua 5.1 doc说:
如果格式以'!'开头,则日期格式为Coordinated 世界时。
如果格式为%c
,!
的行为似乎正确
local date_1 = os.date("!%c")
local date_2 = os.date("%c")
print("utc date: "..date_1)
print("not utc date: "..date_2)
如果格式为*t
,则!
的行为似乎已被交换
local time_1 = os.time(os.date("!*t"))
local time_2 = os.time(os.date("*t"))
print("should be utc time, but is not: "..time_1) -- this should be UTC, and is not
print("should not be utc time, but is: "..time_2) -- this should not be UTC, but is
日期使用:http://www.epochconverter.com/
进行测试为什么?
答案 0 :(得分:1)
os.date("!*t")
和os.date("*t")
返回的表格是正确的。我只打印hour
字段。请注意,它们与%c
格式一致:
local date_1 = os.date("!%c")
local date_2 = os.date("%c")
print("utc date: "..date_1)
print("not utc date: "..date_2)
print("utc date hour: " .. os.date("!*t").hour)
print("not utc date hour: " .. os.date("*t").hour)
我机器上的输出(中国标准时间,UTC + 08:00):
utc date: 02/06/15 02:02:29
not utc date: 02/06/15 10:02:29
utc date hour: 2
not utc date hour: 10
但是,os.time
取表,假设它是本地时间,并返回纪元。因此,本地时间转换为真实时期,但utc时间不是。
print(os.time{year=1970, month=1, day=1, hour=8})
在我的机器上输出0
。