В C++11 вы можете использовать <chrono>
. Вы также можете использовать 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
возвращает указатель на struct tm
, который имеет много числовых полей. например
struct tm* lt = localtime(now);
int hours = lt->tm_hour;
int minutes = lt->tm_min;
Конечно, в принципе, вы должны должны проверить на провал time
, localtime
и т.д. ... (но я никогда не имел эти функции не в состоянии).
Детали, как правило, зависят от операционной системы. Если в Linux, прочитайте time(7); некоторые библиотеки баз данных, такие как POCO или Qt, могут обеспечить общую (независимую от ОС) абстракцию над ними.
BTW, вы можете или не беспокоиться о time zones, и вы, возможно, захотите gmtime
вместо localtime
.
Это может быть конкретная операционная система. –
Похоже, вы не проводили никаких исследований. // Закрыто как дубликат. Связанный вопрос имеет то, что дает вам секунды с эпохи. –
У вас есть googled для 'C++ time'? Первая ссылка была (время) [http://www.cplusplus.com/reference/ctime/time/] со ссылками на ('gmtime') [http://www.cplusplus.com/reference/ctime/ gmtime /] внизу. Похоже, что 'tm' struct имеет то, что вы ищете. –