3

iOS、OSX、Linux、Windowsで動作する時刻(17:30、01:20 ...など)を取得する簡単な方法はありますか?

そうでない場合は、Windowsの方法とposixの方法か何かがありますか?

ありがとう

4

2 に答える 2

8

time_t now = time(NULL);またはで時刻を取得できますtime(&now);

その後、通常は で現地時間に変換しstruct tm *tm_now = localtime(&now);ます。struct tmには、年、月、日、曜日、時、分、および秒のフィールドが含まれています。印刷可能な出力を生成したい場合は、strftimeそれを直接サポートします。

これらは両方とも C および C++ 標準に含まれているため、ほとんどの通常のプラットフォームで使用できます。

本当に C++ だけに関心がある場合はstd::put_time、 を使用できます。これは に似ていstrftimeますが、出力をストリームに書き込む典型的なケースで使用するのが少し簡単です。

于 2012-06-19T05:02:51.947 に答える
5

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 ではまだ実装されていません。

于 2012-06-19T08:16:42.147 に答える