将某个日期(例如"今天上午10点)转换为time_t

时间:2014-05-06 04:50:26

标签: c++

我想将此类日期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 o'时钟并转换回time_t。你能提出比这更简单的东西吗?

1 个答案:

答案 0 :(得分:0)

我相信你应该使用一个库或编写一个解析today的小脚本。大多数库只执行Monday之类的绝对表示。 此外,为了做到这一点,time_get是一个很好的起点,因为它符合标准。

另一种简单的解析方法是使用sscanf

int hour, min;
sscanf(buffer, "today, %2d:%2d",
    &hour,
    &min);