获取计算机时间 c++
C++11引入了
time_t now=0; time(&now); char nowbuf[64]; strftime(nowbuf, sizeof(nowbuf), "%c", localtime(now));
如果只想获取时间的小时和分钟,可以使用下面的代码:
struct tm* lt = localtime(now); int hours = lt->tm_hour; int minutes = lt->tm_min;
当然,理论上应该对time、localtime等函数的调用结果进行错误检查,但是我从未遇到过这些函数调用失败的情况。这些细节通常与操作系统相关。如果在Linux上,可以参考time(7)的文档;一些框架库,如POCO或Qt,可能提供了一种通用的(与操作系统无关的)抽象。
另外,你可能关心时区,可能需要使用gmtime而不是localtime。
代码示例:
int sec = get.sec(); int min = get.min();
上述代码中,get必须是一个struct。
以下是一个完整的示例代码,用于获取自2000年1月1日以来的秒数:
int main() { time_t timer; struct tm y2k; double seconds; y2k.tm_hour = 0; y2k.tm_min = 0; y2k.tm_year = 100; y2k.tm_mon = 0; y2k.tm_mday = 1; time(&timer); // 获取当前时间,等同于:timer = time(NULL) seconds = difftime(timer,mktime(&y2k)); printf ("%.f seconds since January 1, 2000 in the current timezone", seconds); return 0; }
以上就是在C++中获取计算机时间的方法和相关代码。