为了与Java等其他语言对接,可以使用Windows SDK中的timeb.h
获取系统时间。并通过stringstream拼接出想要的毫秒数,下面的方法得到的8个字节的无符号整数就是当前系统时间到1970年1月1日0点的毫秒数。在此记录下来以便遗忘。
#include <sys/timeb.h>
#include <ctime>
#include <string>
#include <sstream>
#include <iostream>
#include <iomanip>
UINT64 getCurrentTimeMillis()
{
using namespace std;
timeb now;
ftime(&now);
std::stringstream milliStream;
// 由于毫秒数不一定是三位数,故设置宽度为3,前面补0
milliStream << setw(3) << setfill('0') << right << now.millitm;
stringstream secStream;
secStream << now.time;
string timeStr(secStream.str());
timeStr.append(milliStream.str());
UINT64 timeLong;
stringstream transStream(timeStr);
transStream >> timeLong;
return timeLong;
}