web-dev-qa-db-ja.com

LuaでUTC UNIXタイムスタンプを取得する

APIはUTCでUNIXタイムスタンプとしてタイムスタンプを返します。このタイムスタンプがx秒以上前かどうかを知りたいのですが。予想通り、これはUTCのos.time() - x > timestampで正常に動作しますが、他のタイムゾーンでは爆破します。

残念ながら、私はこれをluaで解決する良い方法を見つけることができません。

_os.date_には、UTCで時刻を返す_!_プレフィックス(例:os.date("!%H:%M:%S"))が付いていますが、すべてのstrftimeオプションをサポートしていると記載されているドキュメントにも関わらず、 _%s_オプションはサポートされていません。これは同様の問題のLuaコンパイル時オプションが原因で発生するとのことですが、ユーザーがインタープリターを提供しているため、これらを変更することはできません。

11
Azsgy

使用できます

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

現在のUNIXエポックを取得します。

10
Joe