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(&microSecondsSinceEpoch_);

    //打印年月日,因为年从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.

猜你喜欢

转载自blog.csdn.net/shenmingxueIT/article/details/107743184