2017-05-08 388 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