1 #ifdef WIN32 2 time_t clock; 3 struct tm tm; 4 SYSTEMTIME wtm; 5 GetLocalTime(&wtm); 6 tm.tm_year = wtm.wYear - 1900; 7 tm.tm_mon = wtm.wMonth - 1; 8 tm.tm_mday = wtm.wDay; 9 tm.tm_hour = wtm.wHour; 10 tm.tm_min = wtm.wMinute; 11 tm.tm_sec = wtm.wSecond; 12 tm.tm_isdst = -1; 13 clock = mktime(&tm); 14 long long timestamp = clock * 1000000 + wtm.wMilliseconds * 1000; //获取微秒数 15 #else 16 struct timeval tv; 17 gettimeofday(&tv, NULL); 18 timestamp = tv.tv_sec * 1000000 + tv.tv_usec; 19 #endif
使用到的函数:time_t mktime(struct tm *timeptr);
mktime()用来将参数timeptr所指的tm结构数据转换成从公元1970年1月1日0时0分0秒算起至今的UTC时间所经过的秒数。