Muduo-Base-TimeStamp类
Muduo的时间戳类.
主要功能:
- 能够获取当前的时间
- 能够将当前的时间以string的形式返回
- 能够获取两个时间戳类的时间差
- 能够获取当前精确的时间(微秒级)
#ifndef TIMESTAMP_H
#define TIMESTAMP_H
#include <stdint.h>
#include <sys/time.h>
#include <string>
class TimeStamp
{
public:
TimeStamp(uint64_t microseconds = );
uint64_t microseconds() const {
return microseconds_;
}
void AddMicroseconds(const uint64_t microseconds) {
microseconds_ += microseconds;
}
std::string ToFormattedString();
static uint64_t TimeDifference(const TimeStamp& high, const TimeStamp& low);
static TimeStamp now();
* ;
private:
uint64_t microseconds_;
};
#endif // TIMESTAMP_H
#include "timestamp.h"
TimeStamp::TimeStamp(uint64_t microseconds)
:microseconds_(microseconds) {
}
TimeStamp TimeStamp::now() {
struct timeval tv;
gettimeofday(&tv, NULL);
uint64_t microseconds = tv.tv_sec * kMicrosecondPerSeconds + tv.tv_usec;
return TimeStamp(microseconds);
}
uint64_t TimeStamp::TimeDifference(const TimeStamp& high, const TimeStamp& low) {
return high.microseconds() - low.microseconds();
}
std::string TimeStamp::ToFormattedString() {
] = {};
struct tm tm_time;
time_t seconds = microseconds_ / kMicrosecondPerSeconds + * * ;
uint32_t microseconds = microseconds_ % kMicrosecondPerSeconds;
gmtime_r(&seconds, &tm_time);
snprintf(buf, sizeof(buf), "[%04d-%02d-%02d %02d:%02d:%02d:%06d]",
tm_time.tm_year + ,
tm_time.tm_mon + ,
tm_time.tm_mday,
tm_time.tm_hour,
tm_time.tm_min,
tm_time.tm_sec,
microseconds );
return buf;
}
Muduo-Base-TimeStamp类的更多相关文章
- Yii2的深入学习--yii\base\Event 类
根据之前一篇文章,我们知道 Yii2 的事件分两类,一是类级别的事件,二是实例级别的事件.类级别的事件是基于 yii\base\Event 实现,实例级别的事件是基于 yii\base\Compone ...
- pandas中Timestamp类用法讲解
由于网上关于Timestamp类的资料比较少,而且官网上面介绍的很模糊,本文只是对如何创建Timestamp类对象进行简要介绍,详情请读者自行查阅文档. 以下有两种方式可以创建一个Timestamp对 ...
- Yii2的深入学习--yii\base\Object 类
之前我们说过 Yii2 中大多数类都继承自 yii\base\Object,今天就让我们来看一下这个类. Object 是一个基础类,实现了属性的功能,其基本内容如下: <?php namesp ...
- java的Date类和TimeStamp类
Java API中有两个Date类,一个是java.util.Date,其构造方法如下: Date() Date(long date) 主要方法有: boolean after(Date when) ...
- base | Tread类
Tread类 Linux中,每个进程有一个pid,类型pid_t,由getpid()取得.Linux下的POSIX线程也有一个id,类型 pthread_t,由pthread_self()取得,该id ...
- object base基类分析
uvm_object,是所有uvm data和hierarchical class的基类,实现了copy,compare,print,record之类的函数 扩展类中必须实现create和get_ty ...
- Java Timestamp 类的使用
很简单,我们可以这样声明 Timestamp ts=new Timestamp(new Date().getTime());这样我们就可以得到时间比较具体的一个类型转换!!! 在开发web应用中,针对 ...
- base | Thread类、ThreadData结构体 、CurrentThread命名空间
__thread __thread是GCC内置的线程局部存储设施,存取效率可以和全局变量相比.__thread变量每一个线程有一份独立实体,各个线程的值互不干扰.可以用来修饰那些带有全局性且值可能变, ...
- base | AtomicIntegerT类
1. 原子自增操作 type __sync_fetch_and_add (type *ptr, type value) 2. 原子比较和交换(设置)操作 type __sync_val_compare ...
- 【Muduo库】【base】基本类
一.Timestamp类 1.类图如下: 2. 知识点 (1) 这个类继承了 muduo::copyable, 以及 boost::less_than_comparable. (2) ...
随机推荐
- Ext.Net学习笔记09:Ext.Net Store的用法
使用Handler处理分页 首先来创建一般处理程序,我命名为StoreHandler.ashx,然后它的处理过程代码如下: public void ProcessRequest(HttpContext ...
- 07_MyBatis原始的Dao编写方法
[UserDao.java ] package com.Higgin.Mybatis.dao; import com.Higgin.Mybatis.po.User; public interface ...
- DAG模型——嵌套矩阵
有向无环图上的动态规划是学习动态规划的基础,很多问题都可以转化为DAG上的最长路.最短路或路径计数问题. 嵌套矩阵 有n个矩阵,每个矩阵可以用两个整数a,b描述,表示它的长和宽.矩阵X(a,b)可以嵌 ...
- unsigned int 转 RGB
unsigned int颜色存储格式:0xaabbggrr,其中a,b,g,r分别表示,透明度.蓝色.绿色.红色. 方法一:使用windows宏 unsigned int clr = 0x00FF00 ...
- 给定任意一个字符串,使用 for in 语句来统计字符出现的个数
//找出字符串中的数字 var str = 'haj123sdk54hask33dkhalsd879'; /*function findNum(str){ var arr = []; var tmp ...
- node 通过mongoose实现 mongodb的增删改
node 通过mongoose实现 mongodb的增删改 新建文件test.js 内容如下: var mongoose = require('mongoose') , Schema = mo ...
- grub命令来引导linux
由于对linux系统的好奇,想按在机器上玩玩.昨天忙活了一晚上,最终才把linux安装好.但高兴的有点太早了,我还以为进linux就像进 windows那么简单哪,没有想到却蹦出来一个引导命令(gru ...
- 服务器返回的JSON字符串
异步请求将type设为"json",或者利 用$.getJSON()方法获得服务器返回,那么就不需要eval()方法,因为这时候得到的结果已经是json对象
- 【python】求水仙数
for i in range(100, 1000): sum = 0 temp = i while temp: sum = sum + (temp%10) ** 3 temp //= 10 # 注意使 ...
- OS概论1
1.设计现代OS的主要目标是什么? 在计算机上配置操作系统,其主要目标是:方便性,有效性,可扩充性,开放性. 一个没有OS的操作系统,就必须用机器语言书写程序,如果在计算机上配置了OS,系统便可以使用 ...