获取计算机时间c++
Get computer time c++
我正在使用 C++。我想获得计算机时间(我知道如何使用 ctime 函数)。我想把时间当作一个 int 变量(秒、分钟等)。有帮助吗?
类似于:
int sec = get.sec();
int min = get.min();
我不想要 time_t 变量。
在 C++11 you could use <chrono>
. You might also use time(2), localtime(3), strftime(3), clock(3), clock_gettime(2) 中(如果您的系统有)。大概
time_t now=0;
time(&now);
char nowbuf[64];
strftime(nowbuf, sizeof(nowbuf), "%c", localtime(now));
如果您需要一些字符串,可能会有所帮助。否则,请注意 localtime
returns 指向具有许多数字字段的 struct tm
的指针。例如
struct tm* lt = localtime(now);
int hours = lt->tm_hour;
int minutes = lt->tm_min;
当然,原则上你应该需要针对 time
、localtime
等的失败进行测试...(但我从未让这些功能失败)。
详细信息通常是特定于操作系统的。如果在 Linux 上,阅读 time(7); some framework libraries like POCO or Qt 可能会在它们之上提供一个通用的(OS 独立的)抽象。
顺便说一句,您可能关心也可能不关心 time zones,您可能想要 gmtime
而不是 localtime
。
我正在使用 C++。我想获得计算机时间(我知道如何使用 ctime 函数)。我想把时间当作一个 int 变量(秒、分钟等)。有帮助吗?
类似于: int sec = get.sec(); int min = get.min();
我不想要 time_t 变量。
在 C++11 you could use <chrono>
. You might also use time(2), localtime(3), strftime(3), clock(3), clock_gettime(2) 中(如果您的系统有)。大概
time_t now=0;
time(&now);
char nowbuf[64];
strftime(nowbuf, sizeof(nowbuf), "%c", localtime(now));
如果您需要一些字符串,可能会有所帮助。否则,请注意 localtime
returns 指向具有许多数字字段的 struct tm
的指针。例如
struct tm* lt = localtime(now);
int hours = lt->tm_hour;
int minutes = lt->tm_min;
当然,原则上你应该需要针对 time
、localtime
等的失败进行测试...(但我从未让这些功能失败)。
详细信息通常是特定于操作系统的。如果在 Linux 上,阅读 time(7); some framework libraries like POCO or Qt 可能会在它们之上提供一个通用的(OS 独立的)抽象。
顺便说一句,您可能关心也可能不关心 time zones,您可能想要 gmtime
而不是 localtime
。