一个API会以UNIX时间戳的UTC格式返回时间戳,我想知道这个时间戳是不是在 x
秒之前。在UTC中,os.time() - x > timestamp
可以正常工作,但在其他时区则会出错。
不幸的是,我找不到一种在Lua中解决此问题的好方法。
os.date
有一个有用的前缀 !
(例如 os.date("!%H:%M:%S")
)以返回UTC时间,但是似乎尽管文档说明它支持所有strftime
选项,但它不支持%s
选项。我听说人们提到这是由于Lua编译时选项引起的类似问题,但更改这些选项对用户提供的解释器来说是不可能的。
date
命令返回14:40,date -u
命令返回12:40,但Lua的os.time(os.date("!*t"))
命令返回1562240400,对应于13:40。因此,似乎存在时区/夏令时问题。 - galinetteos.time(os.date("*t"))
可以避免夏令时问题。 - redfast00