是一个用于表示时间戳(精确到微秒)**的简单封装类
class Timestamp { public: Timestamp(); explicit Timestamp(int64_t microSecondsSinceEpoch);//// 通过微秒时间戳构造 static Timestamp now();// // 获取当前时间 std::string toString()const;// // 转换为字符串 private: int64_t microSecondsSinceEpoch_;// // 从1970年1月1日0时0分0秒以来的微秒数 };
Timestamp 类的实现,其中通过 time(NULL) 获取当前时间(精确到秒),再用 localtime() 转换为人类可读格式(年月日时分秒),并最终输出字符串。
Timestamp::Timestamp():microSecondsSinceEpoch_(0){}//默认构造函数,将内部时间戳设为 0,表示“无效”或“初始时间” Timestamp::Timestamp(int64_t microSecondsSinceEpoch):microSecondsSinceEpoch_(microSecondsSinceEpoch){} //有参构造函数,使用给定的秒数或微秒数初始化时间戳。 Timestamp Timestamp::now() { return Timestamp(time(NULL)); //time(NULL) 返回的是当前 Unix 时间戳(1970 年起的秒数) } std::string Timestamp::toString()const { char buf[128]={0}; tm *tm_time=localtime(µSecondsSinceEpoch_);//localtime() 将时间戳转为本地时间(tm 结构体) snprintf(buf,128,"%4d/%02d/%02d %02d:%02d:%02d",tm_time->tm_year+1900, tm_time->tm_mon+1, tm_time->tm_mday, tm_time->tm_hour, tm_time->tm_min, tm_time->tm_sec); return buf; }