时间戳<<0923

时间戳相关的函数

struct timeval tv;
memset(&tv, 0, sizeof tv);
gettimeofday(&tv, NULL);//获取当前时间戳

int64_t val = 0;
val += static_cast<int64_t>(tv.tv_sec) * 1000 * 1000;
val += tv.tv_usec;

**要使用上面的int64_t 必须在头文件里面包含: **

#ifndef __STDC_FORMAT_MACROS
#define __STDC_FORMAT_MACROS
#endif /* __STDC_FORMAT_MACROS */
#include <inttypes.h>  

获取时间戳后,可以使用localtime()或者gmtime()函数来转换为本地时间

time_t sec = value_ / (1000 * 1000);
int64_t usec = value_ % (1000 * 1000);
struct tm st;
//gmtime_r(&sec, &st);
localtime_r(&sec, &st);

char text[100] = {0};
snprintf(text, sizeof text, "%04d%02d%02d %02d:%02d:%02d.%06lld", st.tm_year + 1900, st.tm_m    on + 1, st.tm_mday, st.tm_hour, st.tm_min, st.tm_sec, usec);
return string(text);

原文地址:https://www.cnblogs.com/sunstars/p/3991546.html