将特定日期(如"今天上午 10:00")转换为time_t

converting certain date (like "today 10.00 a.m.) to time_t

本文关键字:转换 time 日期 今天      更新时间:2023-10-16

我想将这样的日期today, 10.00 A.M.转换为time_t。最简单的方法是什么?我写了这样的代码(未测试):

time_t     now = time(0);
struct tm  tstruct;
tstruct = *localtime(&now);
tstruct.tm_hour = 10;
tstruct.tm_min = 0;
tstruct.tm_sec = 0;
time_t todayTenOClock = mktime(&tstruct);

这里我将time_t转换为tstruct,将时间设置为10点钟,并转换回time_t。你能提出一些更简单的建议吗?

我认为您应该使用库或编写一个小脚本来解析today。大多数库只做像Monday这样的绝对表示。此外,执行这样的time_get是一个很好的起点,因为它在标准中。

另一种简单的解析方法是使用sscanf
int hour, min;
sscanf(buffer, "today, %2d:%2d",
    &hour,
    &min);