iOS、OSX、Linux、Windowsで動作する時刻(17:30、01:20 ...など)を取得する簡単な方法はありますか?
そうでない場合は、Windowsの方法とposixの方法か何かがありますか?
ありがとう
iOS、OSX、Linux、Windowsで動作する時刻(17:30、01:20 ...など)を取得する簡単な方法はありますか?
そうでない場合は、Windowsの方法とposixの方法か何かがありますか?
ありがとう
time_t now = time(NULL);
またはで時刻を取得できますtime(&now);
その後、通常は で現地時間に変換しstruct tm *tm_now = localtime(&now);
ます。struct tm
には、年、月、日、曜日、時、分、および秒のフィールドが含まれています。印刷可能な出力を生成したい場合は、strftime
それを直接サポートします。
これらは両方とも C および C++ 標準に含まれているため、ほとんどの通常のプラットフォームで使用できます。
本当に C++ だけに関心がある場合はstd::put_time
、 を使用できます。これは に似ていstrftime
ますが、出力をストリームに書き込む典型的なケースで使用するのが少し簡単です。
C++ 11で使用できます
#include <iostream>
#include <iomanip>
#include <ctime>
int main()
{
std::time_t t = std::time(nullptr);
std::cout << "UTC: " << std::put_time(std::gmtime(&t), "%c %Z") << '\n'
<< "local: " << std::put_time(std::localtime(&t), "%c %Z") << '\n';
}
(任意のプラットフォーム)で生成する必要があります
UTC: 2011 年 12 月 28 日水曜日 11:47:03 GMT
ローカル: 2011 年 12 月 28 日水曜日 06:47:03 EST
ただしstd::put_time()
(from iomanip
) は、たとえば gcc 4.7.0 ではまだ実装されていません。