我需要将给定日期转换为包含自1970年1月1日以来的毫秒数的int。(unix epoch)

我尝试了以下代码:

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;

结果为Epoch:1288584000,对应于2010年11月1日星期一04:00:00 GMT

编辑:我预计2010年10月1日,显然tm_mon是自1月以来的月数,
因此正确的行应为lDate.tm_mon = 10 -1;

最佳答案

如手册页中所指定,tm_mon为:
自一月以来的月数,范围为0到11。

09-16 01:36