1、使用api
可以使用windows下和linux下api函数来获取,比较简单,如下所示:
int64_t getTimeStamp()
{
//毫秒数
int mSecond = 0;
#if defined(WIN32)
SYSTEMTIME sys;
GetLocalTime(&sys);
mSecond = sys.wMilliseconds;
#else
//linux 下gettimeofday
struct timeval tv;
struct timezone tz;
struct tm* p;
gettimeofday(&tv, &tz);
p = localtime(&tv.tv_sec);
mSecond = tv.tv_usec / 1000;
#endif
int64_t timeStamp = ((int64_t)time(NULL)) * 1000 + mSecond;
return timeStamp;
}
2、使用标准c++函数
使用标准c++就没有那么多麻烦了
std::chrono::time_point tpMicro
= std::chrono::time_point_cast(std::chrono::system_clock::now());
time_t timeStamp2 = tpMicro.time_since_epoch().count();
3、时间转time_t
对于一些不标准的字符串时间,我们需要转换时,可以十一用sscanf函数,windows下使用sscanf_s
time_t StringToDatetime(const char* str)
{
tm tm_;
int year, month, day, hour, minute, second;
sscanf_s(str, "%d/%d/%d %d:%d:%d", &day, &month, &year, &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 t_ = mktime(&tm_); //已经减了8个时区
return t_; //秒时间
}
4 、调用
int main()
{
int64_t timeStamp = getTimeStamp();
std::chrono::time_point tpMicro
= std::chrono::time_point_cast(std::chrono::system_clock::now());
time_t timeStamp2 = tpMicro.time_since_epoch().count();
std::cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?