我是Lua脚本的新手。我的系统在任何时区运行,但我需要我在gmt时区的新日期和我的给定日期也在gmt。
local creation_date = "2016-05-23 07:34:19"; //(This is in GMT date)
local yearValue, monthValue, dayValue,Hourvalue,Minutevalue,secondvalue =
string.match(creation_date, '(%d+)-(%d+)-(%d+) (%d+):(%d+):(%d+)')
dayValue, monthValue, yearValue,Hourvalue,Minutevalue,secondvalue = tonumber(dayValue), tonumber(monthValue), tonumber(yearValue),tonumber(Hourvalue),tonumber(Minutevalue),tonumber(secondvalue)
expiry_date = os.date("!%Y-%m-%d %H:%M:%S",os.time{year = yearValue, month = monthValue, day = dayValue,hour = Hourvalue,minute =Minutevalue,second = secondvalue}+10*24*60*60)
现在每当我尝试打印到期日期时,都必须打印
expiry_date ="2016-06-03 07:34:19" //(GIVEN DATE + 10 DAYS)
但不是那样打印如下
expiry_date = "2016-06-13 12:00:00"// (Wrong Date)
我知道Lua必须具备按照我的需要以正确方式打印日期的功能,但无法从Google获取。
答案 0 :(得分:2)
我注意到两件可能导致问题的事情,首先10*60*60
不是10天,几秒钟,只需10秒小时 - 您可能需要10*24*60*60
。第二个问题是您使用os.time
的错误字段,要使用的正确字段为hour
,min
和sec
。
例如,
local creation_date = "2016-05-23 07:34:19" -- (This is in GMT date)
local y, m, d, Hr, Min, Sec = creation_date:match '(%d+)-(%d+)-(%d+) (%d+):(%d+):(%d+)'
local exp_sec = os.time
{ year = y, month = m, day = d,
hour = Hr, min = Min, sec = Sec } + 10*24*60*60