【发布时间】:2010-10-22 20:29:37
【问题描述】:
我需要将给定的日期转换为包含自 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;
结果是 Epoch: 1288584000 对应于 Mon, 01 Nov 2010 04:00:00 GMT
编辑:我期待 2010 年 10 月 1 日,显然 tm_mon 是自一月以来的月数, 所以正确的行是 lDate.tm_mon = 10 -1;
【问题讨论】:
-
你刚刚做了,那有什么问题?具体来说,你得到的和你想要的有什么不同?
-
您期待什么答案(以 DD MM YYYY 等表示法)?