有没有一种简单的方法可以在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++标准中,因此它们在大多数普通平台上都可用。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()
(来自iomanip
)尚未在例如GCC 4.7.0中实现。
gettimeofday
。 - jxh