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) ...
随机推荐
- 一个fibonacci数列简单求和的问题
前段时间老师在讲函数调用的时候,用Fibonacci数列来演示了一下,因为以前没怎么接触过Fibonacci,所以当时很懵. 当时让求的是Fibonacci数列中,第N位值为多少,当时老师写的是: 之 ...
- 关于block块使用的6点注意事项
对于刚学习OC新伙伴,block块一直都是一个比较纠结.比较难懂的知识点,不过,在使用一段时间后,就会感觉很酸爽.block块的原理及使用我就不再赘述,网上有很多这方面的资料.我个人使用这么长时间以来 ...
- Objective-C 成员变量的访问修饰即成员变量可见性解析
总体来说Objective-C的访问成员变量可见性和C++基本一样,只是多了个@package. 以下是详细说明: 例子: @interface CTPerson : NSObject { @priv ...
- C#冒泡排序法程序代码
using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace Console ...
- Unity中使用RequireComponent,没有添加上组件
using UnityEngine; using System.Collections; [RequireComponent(typeof(MeshFilter), typeof(MeshRender ...
- java之表达式陷阱
String str1 = "Hello Java的长度:10"; String str2 = "Hello Java的长度:10"; String str3 ...
- MateSublg
MateSublg 说明 使用MetaWeblog的方式提交文章,并自动上传图片. 本插件的官方地址:MateSublg – Sollyu博客 本插件的开源地址:sollyu / MetaSubolg ...
- Fedora 21 安装QQ国际版
首先安装依赖包 sudo yum install freetype.i686 libpng.i686 libgcc.i686 libXau.i686 点击下载wine-2012qq国际版 unzip ...
- Linux Shell脚本之自动修改IP
作为一名Linux SA,日常运维中很多地方都会用到脚本,而服务器的ip一般采用静态ip或者MAC绑定,当然后者比较操作起来相对繁琐,而前者我们可以设置主机名.ip信息.网关等配置.修改成特定的主机名 ...
- NFS,FTP
一. NFS1. NFS简介NFS全称是network file systemNFS允许一个系统在网络上与他人共享目录和文件.通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件. 假 ...