为什么往返 Lua UTC os.date -> os.time -> os.date 会导致 HOUR 时差?

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

UTC 中的 os.date -> os.time -> os.date 往返似乎没有回到同一时间:

print(os.date( "!%a %b %d %H:%M:%S %Y"))
print(os.date("%c" , os.time( os.date("!*t", os.time() ) ) ))

输出:

2024 年 4 月 15 日星期一 16:08:48
2024 年 4 月 15 日星期一 17:08:48

我错过了什么?

附注第一行是正确的时间

time lua timezone-offset
1个回答
0
投票

我认为由于某种原因,isdst(夏令时)值被切换,并且给出了 1 小时的偏移。

以下代码应该修复偏移量。

print(os.date("!%a %b %d %H:%M:%S %Y"))

local dt = os.date("!*t",os.time())
dt.isdst = true
print(os.date("%c", os.time(dt)))
© www.soinside.com 2019 - 2024. All rights reserved.