跨平台的方式来获取一天的时间?

有没有一种简单的方法可以获得适用于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中实现。