jma*_*erx 3 c c++ cross-platform
是否有一种简单的方法可以获得适用于iOS,OSX,Linux和Windows的时间(17:30,01:20 ......等)?
如果没有Windows方式和posix方式或东西?
谢谢
您可以使用time_t now = time(NULL);或检索时间time(&now);
然后你通常转换为当地时间struct tm *tm_now = localtime(&now);.A 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';
}
Run Code Online (Sandbox Code Playgroud)
哪个应该产生(任何平台)
UTC:2011年12月28日星期三11:47:03 GMT
当地时间:Wed Dec 28 06:47:03美国东部时间
虽然std::put_time()(来自iomanip)尚未在gcc 4.7.0中实现.
| 归档时间: |
|
| 查看次数: |
4678 次 |
| 最近记录: |