获取时间戳:
long GetCurrentTimeStamp()
{
time_t t = time(0);
long l = t;
return t;
}
如下给出一个Windows和linux平台通用的时间字符串转时间戳的接口:
time_t convertTimeStr2TimeStamp(string timeStr)
{
if (timeStr.length() <= 0 || timeStr.empty())
{
throw ERROR_INVALID_PARAMETER;
}
#ifdef OS_WIN
struct tm tm_;
int year, month, day, hour, minute, second;
sscanf(timeStr.c_str(), "%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second);
tm_.tm_year = year - 1900;
tm_.tm_mon = month - 1;
tm_.tm_mday = day;
tm_.tm_hour = hour;
tm_.tm_min = minute;
tm_.tm_sec = second;
tm_.tm_isdst = 0;
time_t timeStamp = mktime(&tm_);
#else
struct tm timeinfo;
strptime(timeStr.c_str(), "%Y-%m-%d %H:%M:%S", &timeinfo);
time_t timeStamp = mktime(&timeinfo);
printf("timeStamp=%ld\n", timeStamp);
#endif
return timeStamp;
}