0
我试图从给定的有效小时和分钟中获得从时代(1970年1月1日)开始的秒数。C++自从具有给定小时和分钟的时代以来的秒数
假设给定的小时数是10,给定的分钟数是30,这意味着它是上午10:30。还假定它是在今天的日期。这意味着它将会是:
2014 12月6日上午10时30分00秒
我怎样才能得到的秒数从划时代上述日期?
我试过以下,但我得到-1作为我的结果。
time_t now = time(0);
tm *ltm = gmtime(&now);
struct tm t;
t.tm_year = 1900 + ltm->tm_year;
t.tm_mon = 1 + ltm->tm_mon;
t.tm_mday = ltm->tm_mday;
t.tm_hour = 10;
t.tm_min = 30;
t.tm_sec = 0;
time_t timeSinceEpoch = mktime(&t);
timeSinceEpoch返回-1。这是为什么?
我想从系统中得到的年,月,日来代替。只有小时,分钟和秒字段通过变量设置。我可以知道为什么tm_year = 114? – Wallace 2014-12-06 11:28:05
@Wallace ::我编辑了代码以满足您的需求。另请注意,tm_year将是1900年以来的年份。 – 2014-12-06 11:47:29
谢谢。作为我的结果,我得到了1417833000。它是否正确?有没有办法来验证结果?顺便说一句,我正在使用gmtime。 gmtime和localtime有区别吗?我的时区是GMT + 8。 – Wallace 2014-12-06 11:59:53