2017-05-08 389 views
4

API返回一个时间戳作为UNIX时间戳,我想知道这个时间戳是否大于x秒前。正如预期的那样,这可以在UTC使用os.time() - x > timestamp,但在其他时区爆炸。在Lua中获取UTC UNIX时间戳

不幸的是我找不到解决这个问题的好方法。

os.date有益有!前缀(例如os.date("!%H:%M:%S"))在UTC返回时间,但似乎是,尽管文档说明它支持所有strftime选项,这不支持%s选项。我听说有人提到这是由于类似问题的Lua编译时间选项造成的,但由于解释器是由用户提供的,所以更改这些是不可能的。

回答

4

您可以使用

os.time(os.date("!*t"))

来得到当前的UNIX纪元。

+0

哦,这很有意义。我曾经尝试过,我无法做到有用! – Atsch

+1

有关性能的说明:这比使用os.time()和减去差异要慢500倍左右。但是,因为我预计有这种方法的错误,并希望最大味精/秒大约200我将与此一起去。 – Atsch

+0

很高兴你测量。 – Joe