hh:mm:ss formatに時間を含む文字列変数があります。 time_t型に変換する方法は?例:string time_details = "16:35:12"
また、どちらが最も早いかを判断するために、時間を含む2つの変数を比較する方法は?例:string curr_time = "18:35:21" string user_time = "22:45:31"
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
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 case
std::time_t time = mktime(&tm);
std :: get_time および strftime を参照してください
これは動作するはずです:
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);
必要に応じて変更します。