C++ 自纪元以来给定小时和分钟的秒数

标签 c++ time epoch

我正在尝试获取具有给定有效小时和分钟的纪元(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/

相关文章:

javascript - 将(postgresql 中的日期和时间戳)转换为 JavaScript 时间

c++ - 运算符的隐式调用 [C++]

c++ - 如何将抛出的表达式从一个 catch block 转发到另一个?

c++ - 使用 NDC 空间在近平面上投影点

c++ - 前循环迭代对当前迭代执行时间的影响

c# - 如何将 Unix 时间戳转换为 DateTime,反之亦然?

c++ - 使用 C++ 检测文件中空行的混淆行为

Java Clock 类没有给我当前时间

javascript - 在数组中查找时间,如果没有找到,则选择上一个

Javascript 将日期时间字符串转换为纪元