2016-06-27 6 views
0

現在のタイムスタンプを得る方法はありますかC++ JavaScriptのDate.now()と同じですか?1970年からC++で現在のタイムスタンプを取得する方法は?

chrono whithout)

私はチャートを描画するためのflot jQueryのライブラリを使用しています、そしてそれは、デフォルトのタイムメジャーの1970年の1月1日00:00:00 UTCですので、私のC++バックエンドがそれに合わせなければなりません。

質問が繰り返されると申し訳ありませんが、私が見つけたものはすべてchronoを使用していますが、アクセス権はありません。ありがとうございました。

答えて

1

chronoを使用できないので、代わりにtimeを試してみてください。ここで

time_t result = time(NULL); 
printf("%s%ju secs since the Epoch\n", asctime(localtime(&result)), (uintmax_t)result); 

live example.

注これは、ほとんどのPOSIX準拠のシステム上で利用可能ですが、必ずしもすべてのシステムがPOSIX準拠していることです。

+0

'time'関数(これは 'または' 'で宣言されているはずです)は、すべての準拠のホストされたホスト上に存在しますPOSIXはそれがエポックから秒を返すことを保証し、 "エポック"を1970-01-01 00:00:00 UT C. –

+0

私はそれを試しましたが、uintmax_tがスコープ内で宣言されていませんでした。私はそれを交換する必要がありますか?はいの場合、正確には何ですか? – Luiz

+0

@LuizGuilhermeFonsecaRosaこれはキャストであり、必要ではないかもしれません。これはprintf用です。 unixとposixは通常、time_tを符号付き整数にします。 –

4

それはすべての実装のための保証はないですが、それは、午前0時からの秒単位のタイムスタンプを取得するには(ヘッダctimeまたはtime.hで見つかった)古いC time()機能のために1970年1月1日はかなり一般的です(そしてそれはPOSIXに義務付けられています)。

+0

13秒で私にビート:( –

+0

あなたはどこ '時間(言うべき)'( ''や '')宣言されて –

+0

@KeithThompson:。私はそれだけでそれを削除する編集価値があるとは思いませんが、私はほとんど同意していません。あなたがこのような機能を持っていて、あなたがランダムなグーグル・グーグルを横切って走っていないとしたら、それは一つのことです。 –

関連する問題