-- 当前时区偏移秒
function getTimezone()
local now = os.time()
return os.difftime(now, os.time(os.date("!*t", now)))
end
-- 服务器时间戳 2019-07-30 20:14:00
local serverTime = 1564488840
-- 服务器时区偏移毫秒
local serverZone = 28800
-- 修正后的时间戳
local clientLocalTime = serverTime + serverZone - getTimezone()
-- clientLocalTime时间戳是否采用夏令时
local isdst = os.date("!*t",clientLocalTime).isdst
-- 夏令时则-3600
clientLocalTime = clientLocalTime + (isdst and -3600 or 0)
print(os.date("%Y-%m-%d %H:%M:%S",clientLocalTime))
os.date().isdst可以根据所设定的 时间与本机所设的时区获取是否处于夏令时
是夏令时的时候需要减-3600