muduo网络库——Timestamp
这个类主要是获取当前时间,以及把当前时间转换为字符串打印出来。
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.