2017-05-08 21 views
4

APIは、UTCのUNIXタイムスタンプとしてタイムスタンプを返します。このタイムスタンプがx秒より前であるかどうかを知りたいと思います。予想どおり、これはUTCでos.time() - x > timestampで正常に動作しますが、他のタイムゾーンでは爆発します。ルアでのUTC UNIXタイムスタンプの取得

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

os.dateは親切UTC時刻を返すように!接頭辞(例えばos.date("!%H:%M:%S"))を持っているが、それはすべてstrftimeオプションをサポートしている旨の文書にもかかわらず、これは%sオプションをサポートしていないようです。これはLuaが類似の問題のコンパイル時のオプションによって引き起こされていると言われていますが、これらを変更することはインタープリタがユーザによって提供されるため不可能です。

答えて

4

現在のUNIXエポックを取得するために

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

を使用することができます。

+0

これはかなり意味があります。私はそれを別の方法で試してみましたが、何か役に立つものを得ることができませんでした! – Atsch

+1

パフォーマンスに関する注意:これはos.time()をとり、その差を減算するよりも約500倍遅くなります。しかし、私はそのアプローチのバグを予期し、最大msg /秒が約200になることを期待しているので、私はこれに伴います。 – Atsch

+0

うれしいです。 – Joe

関連する問題