我正在尝试获取具有给定有效小时和分钟的纪元(1970 年 1 月 1 日)的秒数。
假设给定的小时数为 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。为什么会这样?
最佳答案
您可以使用 mktime()喜欢关注
time_t t = time(NULL);
tm* timePtr = localtime(&t);//Getting current time.
struct tm t = {0}; // Initalize to all 0's
t.tm_year = timePtr->tm_year; // This is year- 114 (1900+114=2014)
t.tm_mon = timePtr->tm_mon; //Current Month
t.tm_mday = timePtr->tm_mday; //Today's date
t.tm_hour = 10; //Time you need (10)
t.tm_min = 30; //Minutes you need (30)
t.tm_sec = timePtr->tm_sec; //Current second
time_t timeSinceEpoch = mktime(&t);
关于C++ 自纪元以来给定小时和分钟的秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27331020/