跨平台的方式来获取一天的时间?
有没有一种简单的方法可以获得适用于iOS,OSX,Linux和Windows的时间(17:30,01:20 ……等)?
如果没有Windows方式和posix方式或东西?
谢谢
你可以用time_t now = time(NULL);
检索时间time_t now = time(NULL);
或time(&now);
然后通常使用struct tm *tm_now = localtime(&now);
转换为本地时间struct tm *tm_now = localtime(&now);
。 struct tm
包含年,月,日,星期,小时,分钟和秒的字段。 如果要生成可打印输出, strftime
会直接支持。
这两个都是C和C ++标准,因此它们可以在大多数普通平台上使用。
如果你真的只关心C ++,你可以使用std::put_time
,它类似于strftime
,但是对于将输出写入流的典型情况,使用起来要简单一些。
使用C ++ 11可以使用
#include #include #include 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
当地时间:Wed Dec 28 06:47:03美国东部时间
虽然std::put_time()
(来自iomanip
)尚未在gcc 4.7.0中实现。