time_t c++ time

c++ - time_t - mktime c



¿Cómo convertir una variable de cadena que contiene time to time_t type in c++? (3)

Tengo una variable de cadena que contiene el tiempo en formato hh: mm: ss . ¿Cómo convertirlo en time_t type? por ejemplo: string time_details = "16:35:12"

Además, ¿cómo comparar dos variables que contienen tiempo para decidir cuál es la más temprana? por ejemplo: string curr_time = "18:35:21" string user_time = "22:45:31"


Con C ++ 11 ahora puede hacer

struct std::tm tm; std::istringstream ss("16:35:12"); ss >> std::get_time(&tm, "%H:%M:%S"); // or just %T in this case std::time_t time = mktime(&tm);

vea std::get_time y strftime para referencia


Esto debería funcionar:

int hh, mm, ss; struct tm when = {0}; sscanf_s(date, "%d:%d:%d", &hh, &mm, &ss); when.tm_hour = hh; when.tm_min = mm; when.tm_sec = ss; time_t converted; converted = mktime(&when);

Modificar según sea necesario.


Puede usar strptime(3) para analizar el tiempo, y luego mktime(3) para convertirlo a time_t :

const char *time_details = "16:35:12"; struct tm tm; strptime(time_details, "%H:%M:%S", &tm); time_t t = mktime(&tm); // t is now your desired time_t