私は、HH :: MM :: SSファッションで時間を節約する方法をC++で探しています。私は彼らが多くの解決策であることをここに見て、少し研究した後、私はtime
とlocaltime
を選んだ。 localtime
機能は少しトリッキーですようしかし、それsays以来、思わ:C++:時間と現地時間でどのように実際の時間を取得するのですか?
すべてがそう 各呼び出しは、前の呼び出しの結果を上書きし、localtimeの呼び出しと同じ静的な構造を使用しGMTIME。
これは次のコードスニペットに示されている原因となる問題:
#include <ctime>
#include <iostream>
using namespace std;
int main() {
time_t t1 = time(0); // get time now
struct tm * now = localtime(& t1);
std::cout << t1 << std::endl;
sleep(2);
time_t t2 = time(0); // get time now
struct tm * now2 = localtime(& t2);
std::cout << t2 << std::endl;
cout << (now->tm_year + 1900) << '-'
<< (now->tm_mon + 1) << '-'
<< now->tm_mday << ", "
<< now->tm_hour << ":" << now->tm_min << ":" << now->tm_sec
<< endl;
cout << (now2->tm_year + 1900) << '-'
<< (now2->tm_mon + 1) << '-'
<< now2->tm_mday << ", "
<< now2->tm_hour << ":" << now2->tm_min << ":" << now2->tm_sec
<< endl;
}
このための典型的な出力は次のようになります。
1320655946
1320655948
2011-11-7, 9:52:28
2011-11-7, 9:52:28
ですから、time_t
タイムスタンプを見ることができるように正しいですが、現地時間はすべてを乱してしまいます。
私の質問は:タイムスタンプotタイプtime_t
を人間が判読可能な時間に変換するにはどうすればよいですか?
+1。私は* _rについて知りませんでした!ありがとう! – Viet