猿问

如何在C ++中将包含时间的字符串变量转换为time_t类型?

我有一个包含hh:mm:ss格式的时间的字符串变量。如何将其转换为time_t类型?例如:string time_details =“ 16:35:12”

另外,如何比较两个包含时间的变量,以便确定哪个是最早的?例如:string curr_time =“ 18:35:21” string user_time =“ 22:45:31”


BIG阳
浏览 808回答 3
3回答

狐的传说

您可以使用strptime(3)解析时间,然后mktime(3)将其转换为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

慕村9548890

使用C ++ 11,您现在可以执行struct std::tm tm;std::istringstream ss("16:35:12");ss >> std::get_time(&tm, "%H:%M:%S"); // or just %T in this casestd::time_t time = mktime(&tm);请参阅std :: get_time和strftime以供参考
随时随地看视频慕课网APP
我要回答