这个类主要是获取当前时间,以及把当前时间转换为字符串打印出来。
Timestamp.h
#pragma once
#include <iostream>
class Timestamp
{
public:
Timestamp();
explicit Timestamp(int64_t microSecondsSinceEpoch);
//获取当前时间
static Timestamp now();
//int64 转换为字符串
std::string toString() const;
private:
int64_t microSecondsSinceEpoch_;
};
Timestamp.cc
#include "Timestamp.h"
#include <ctime>
Timestamp::Timestamp():microSecondsSinceEpoch_(0){}
Timestamp::Timestamp(int64_t microSecondsSinceEpoch)
:microSecondsSinceEpoch_(microSecondsSinceEpoch)
{}
//获取当前时间
Timestamp Timestamp::now()
{
return Timestamp(time(NULL));
}
//int64 转换为字符串并打印信息
std::string Timestamp::toString() const
{
char buf[128] = {0};
/* tm是个数据结构
*struct tm
{
int tm_sec; // seconds after the minute - [0, 60] including leap second
int tm_min; // minutes after the hour - [0, 59]
int tm_hour; // hours since midnight - [0, 23]
int tm_mday; // day of the month - [1, 31]
int tm_mon; // months since January - [0, 11]
int tm_year; // years since 1900
int tm_wday; // days since Sunday - [0, 6]
int tm_yday; // days since January 1 - [0, 365]
int tm_isdst; // daylight savings time flag
};
*/
tm* tm_time = localtime(µSecondsSinceEpoch_);
//打印年月日,因为年从1900开始,月从0开始
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;
}
参考文献
[1] 施磊.重写moduo库.图论科技.2020.7.