В <ctime> есть функция time(), возвращающая текущее время в формате time_t — количество секунд, прошедших с 00:00 1 января 1970. Функция localtime() позволяет перевести time_t в структуру tm, которая состоит из полей, представляющих отдельно часы, минуты, месяц, год и т. д.
#include <stdio.h>
#include <ctime>
using namespace std;
int main()
{
time_t t1 = time(NULL);
tm t = *localtime(&t1);
// Вывод текущего времени в формате 06:59:08
printf("%.2d:%.2d:%.2d\n", t.tm_hour, t.tm_min, t.tm_sec);
return 0;
}
Список полей структуры tm и пояснения к ним есть
тут.