lua根据服务器时间戳显示格式化的时间

-- 当前时区偏移秒
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

你可能感兴趣的:(lua根据服务器时间戳显示格式化的时间)