私のプログラムでstd::chrono::system_clock::time_point
を使用しています。 アプリケーションが停止したら、ファイルにtime_point
に保存し、アプリケーションの起動時に再度ロードします。アプリケーションの外にtime_pointを保存する
UNIX-Timestampの場合、単純に値を整数として保存できます。同様にtime_point
を保存する方法はありますか?
私のプログラムでstd::chrono::system_clock::time_point
を使用しています。 アプリケーションが停止したら、ファイルにtime_point
に保存し、アプリケーションの起動時に再度ロードします。アプリケーションの外にtime_pointを保存する
UNIX-Timestampの場合、単純に値を整数として保存できます。同様にtime_point
を保存する方法はありますか?
はい。タイムスタンプを希望する精度を(秒、ミリ秒、...ナノ秒)で選択します。その数値を抽出し、その精度にsystem_clock::time_point
をキャストし、それを印刷する標準で指定されていないが
cout << time_point_cast<seconds>(system_clock::now()).time_since_epoch().count();
、上記の行は(事実上の)移植1970-ので非うるう秒の数を出力します。 01-01 00:00:00 UTC。つまり、これはUNIX-Timestampです。
私は、上記のコードを標準に恵まれて、今日のすべての実装で実際に行っていることを実行しようとしています。そして、私はstd :: chronoの実装者の非公式な保証を持っています。その間、彼らはsystem_clock
エポックを変更しません。ここで
は、完全な往復例です:
#include <chrono>
#include <iostream>
#include <sstream>
int
main()
{
using namespace std;
using namespace std::chrono;
stringstream io;
io << time_point_cast<seconds>(system_clock::now()).time_since_epoch().count();
int64_t i;
system_clock::time_point tp;
io >> i;
if (!io.fail())
tp = system_clock::time_point{seconds{i}};
}
は、私は明日それをチェックします、ありがとうございます! – Bobface
タイムスタンプを 'time_point'にキャストする方法はありますか? – Bobface
@Bobface:updated。 –