我需要将给定日期转换为包含自 1970 年 1 月 1 日以来的毫秒数的 int。(unix 纪元)
我尝试了以下代码:
tm lDate;
lDate.tm_sec = 0;
lDate.tm_min = 0;
lDate.tm_hour = 0;
lDate.tm_mday = 1;
lDate.tm_mon = 10;
lDate.tm_year = 2010 - 1900;
time_t lTimeEpoch = mktime(&lDate);
cout << "Epoch: " << lTimeEpoch << endl;
结果是纪元:1288584000,对应于 Mon, 01 Nov 2010 04:00:00 GMT
编辑:我期待 2010 年 10 月 1 日,显然 tm_mon 是自 1 月以来的月数,
所以正确的行是 lDate.tm_mon = 10 -1;
正如手册页中所指定的,tm_mon 是:
自 1 月以来的月份数,范围为 0 到 11。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)