muduo Timestamp详解

2023-10-27

1. 简介

Timestamp用于提供时间戳相关的工具函数。

2. 类与接口

① string toString() const
返回时间的字符串形式,例如1649224501.687051

② string toFormattedString(bool showMicroseconds = true) const
返回时间的字符串形式,showMicroseconds为true时,例如20220406 05:55:01.687051,为false时,例如20220406 05:55:01

③ time_t secondsSinceEpoch() const
返回距离1970-1-1 00:00:00的秒数

④ static Timestamp now()
获取当前时间

⑤ double timeDifference(Timestamp high, Timestamp low)
获取时间间隔单位为秒

⑥ Timestamp addTime(Timestamp timestamp, double seconds)
从当前时间加上对应秒数

3. PRID64

c++使用PRID64,需要两步:
1.包含头文件:<inttypes.h>
2.定义宏:__STDC_FORMAT_MACROS,可以通过编译时加-D__STDC_FORMAT_MACROS,或者在包含文件之前定义这个宏。
int64_t用来表示64位整数,在32位系统中是long long int,在64位系统中是long int,所以打印int64_t的格式化方法是:

printf("%ld", value); // 64bit OS  
printf("%lld", value); // 32bit OS  

可借助PRID64实现跨平台的方法:

#include <inttypes.h>  
printf("%" PRId64 "\n", value);  
// 相当于64位的:  
printf("%" "ld" "\n", value);  
// 或32位的:  
printf("%" "lld" "\n", value);  

4. test_timestamp.cc

//
//  test_timestamp.cc
//  test_timestamp
//
//  Created by blueBling on 22-3-31.
//  Copyright (c) 2022年blueBling. All rights reserved.
//


#include "Timestamp.h"

#include <iostream>
#include <vector>

using std::cout;
using std::endl;
using std::vector;

int test_timestamp() {

	Timestamp time1(Timestamp::now());
	cout << time1.toString() << endl;
	cout << time1.toFormattedString(true) << endl;
	cout << time1.toFormattedString(false) << endl;

	// 创建1000000个Timestamp个对象所需要的时间
	const int kNumber = 1000*1000;
	std::vector<Timestamp> stamps;
	stamps.reserve(kNumber);

	for (int i = 0; i < kNumber; i++) {
		stamps.push_back(Timestamp::now());
	}

	cout << stamps.front().toFormattedString(false) << endl;
	cout << stamps.back().toFormattedString(false) << endl;
	cout << timeDifference(stamps.back(), stamps.front()) << endl;


	return 0;
}

int main() {

	test_timestamp();

	return 0;
}

测试结果

1649224501.687051
20220406 05:55:01.687051
20220406 05:55:01
20220406 05:55:01
20220406 05:55:01
0.064806

5. 源码

GitHub

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

muduo Timestamp详解 的相关文章

  • 转换给定时区的日期/时间 - java

    我想将此 GMT 时间戳转换为 GMT 13 2011 10 06 03 35 05 我尝试了大约 100 种不同的 DateFormat TimeZone Date GregorianCalendar 等组合来尝试完成这个非常基本的任务
  • Android/Firebase - 解析 GCM 事件中的时间戳时出错 - 空时间戳

    我正在构建一个将接收推送通知的 Android 应用程序 我已经完成了 Firebase Cloud Messaging 设置并且几乎可以正常工作 这样我就可以将以下有效负载发送到有效令牌并接收通知和数据 使用网址https fcm goo
  • 为什么时间戳的限制是2038?

    我刚刚在运行日历脚本时发现 PHP 中的时间戳限制为 2038 这到底意味着什么 为什么是2038年而不是2050年或2039年 如果时间戳只计算给定日期 1970 年 的秒数 为什么要进行限制 该限制是由大多数 C 库用于表示该计数的 4
  • 时间轴上刻度子集的日期格式

    Problem 我想格式化我的 X 轴 时间 以便周末清晰可见 我想显示日期以及星期几 现在的情况 我用 下面的完整代码 来做到这一点 scale x date breaks myData timestamp labels paste su
  • 根据时间戳间隔创建 csv 文件的数据框

    我相信我的问题非常简单 并且一定有一个非常简单的方法来解决这个问题 但是由于我对Python 特别是pandas很陌生 我无法自己解决它 我有数百个 csv 文件 格式如下 text 2014 02 22 13 00 00 所以格式是str
  • 将此字符串转换为时间戳 PHP [重复]

    这个问题在这里已经有答案了 我有这个字符串 13 10 15 00 我想将其转换为时间戳 但是当我这样做时 timestamp strtotime 13 10 15 00 它返回一个空值 在你的代码中strtotime 正在尝试转换13 1
  • 如何获取真实的UTC时间戳(与客户端无关)?

    有没有办法获得real当前 UTC 时间戳而不依赖于客户端时间 这可能无法在每个客户端上正确设置 我知道 JavaScript 的getTime 我可以获取以毫秒为单位的 UTC 时间戳 它独立于客户的时区 但我认为它取决于客户的当前时间
  • 时间戳转字符串日期

    我不知道如何将时间戳转换为日期 我有 public void onCreate Bundle savedInstanceState super onCreate savedInstanceState setContentView R lay
  • 我可以从带时间戳的图像创建 VFR 视频吗?

    首先 我对图像制作视频的经验几乎为零 我拥有的是一组带有 BMP 时间戳的图像 我想从中生成视频 由于时间戳的间隔不相等 我不能简单地使用从图像创建恒定帧速率视频的软件 一个可能的解决方案是在固定的时间间隔创建人造图像 但如果我无法制作 V
  • 我应该如何存储不同时区事件的数据?

    这是一个概念性问题 因此这里没有代码片段 假设我创建了一个事件数据库 其中一些在纽约 一些在芝加哥 一些在凤凰城 等等 我的服务器的时区设置为纽约 在我看来 为所有这些事件创建 UNIX 时间戳时有两种选择 考虑时区 即 1 月 1 日午夜
  • 比较 PHP 中的 2 个时间戳并获取之间的天数?

    我有 2 个时间戳 如 3434368673 想要获取它们之间的天数 我怎样才能做到这一点 Thanks Use the 朱利安 戴 http en wikipedia org wiki Julian day days unixtojd t
  • 更改数据的时区值

    我必须导入不带时区信息的数据在其中 但是 我知道我要导入的数据的具体时区 但我需要timestamp with time zone数据库中的格式 一旦我导入它并将时间戳数据类型设置为timestamp with time zone Post
  • 按时间戳字段中的日期过滤结果

    我已经获得了一些帮助 但不确定为什么这不起作用 我正在尝试使用表单让用户过滤他们的活动 存储在数据库中 My code GET from 01 11 2013 GET to 25 11 2013 from DateTime createFr
  • 选择早于的时间戳

    我如何从数据库中选择超过 12 小时的项目 我使用时间戳列来存储时间 但我认为我不需要年 月 日 只需要小时 我有类似的东西 但它不起作用 没有错误 只是从表中返回所有数据 sql SELECT FROM Y WHERE X and tim
  • 如何创建毫秒粒度的 Python 时间戳?

    我需要一个自纪元以来的毫秒 ms 时间戳 这应该不难 我确信我只是缺少一些方法datetime或类似的东西 实际上微秒 s 粒度也很好 我只需要亚 1 10 秒的计时 例子 我有一个每 750 毫秒发生一次的事件 假设它检查灯是否打开或关闭
  • 将 Java 字符串转换为 sql.Timestamp

    收到以下格式的字符串 YYYY MM DD HH MM SS NNNNNN 时间戳来自 DB2 数据库 我需要将其解析为 java sql Timestamp 并且不丢失任何精度 到目前为止 我一直无法找到现有的代码来解析远至微秒的数据 S
  • PHP 中的 NOW() 函数

    是否有 PHP 函数以与 MySQL 函数相同的格式返回日期和时间NOW 我知道如何使用date 但我想问是否有专门用于此的功能 例如 返回 2009 12 01 00 00 00 您可以使用date https www php net m
  • 如何在oracle中将日期转换为时间戳(DD-MON-YYYY HH24:MI:SS.FF格式)?

    我尝试了下面的查询 但它不起作用 select TO TIMESTAMP ColumnName Data type Date DD MON YYYYHH24 MI SS FF from TableName where Changedate
  • Cookie 过期时间格式

    我从谷歌浏览器的 Cookies 文件和其中的一列创建了数据库cookies表是expires utc 该列的格式类似于 13169399213145330 这更像是unix时间 但是当我尝试使用 unix 时间转换器时 它给出了错误的值
  • jQuery 时间戳之前的时间?

    下面是一个非常好的 jQuery 插件 与他们在 SO 上使用的插件非常相似 对我来说问题是它用它来转换时间

随机推荐

  • C++ 指针

    每个变量都有一个内存位置 每一个内存位置都定义了可使用连字号 运算符访问的地址 它表示了在内存中的一个地址 例如输出定义变量的地址 include
  • 【分享之路001】springboot整合双redis配置

    springboot双redis配置 1 背景 springboot项目中本来用到了redis 由于业务要求 需要将数据也写到另一个redis中 2 配置文件改动 2 1 之前redis配置 spring redis database xx
  • 【计算机网络篇】TCP协议

    作者简介 大家好 我是小杨 个人主页 小杨 的csdn博客 希望大家多多支持 一起进步呀 TCP协议 1 TCP 简介 TCP Transmission Control Protocol 是一种在计算机网络中广泛使用的传输层协议 用于在网络
  • [机器学习与scikit-learn-29]:算法-回归-普通线性回归LinearRegression拟合线性分布数据的代码示例

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 目录 第1章 LinearRegression类说明 第2章 LinearRegression使用的代码示例 2 1 导入库 2 2 导数数
  • SSM框架的流程及优点

    SSM框架 SSM Spring SpringMVC MyBatis 框架集由Spring MyBatis两个开源框架整合而成 SpringMVC是Spring中的部分内容 在这个快速发展的互联经济的时代 SSM框架提高了开发人员的工作效率
  • 查询topn的另一种方法通过orderby排序后利用limit来实现

    文章目录 前言 1 热身题实践 其他 前言 一直有个想法 把面试需要的知识点全都总结一下 包括数据库 语言 算法 数据结构等知识 形成一个面试总结笔记 这样以后面试的时候只看这些文章回顾下就行了 今天就先总结下Mysql的面试热身题吧 后续
  • HBase运维中遇到的问题

    1 PleaseHoldException Master is initializing hadoop 3 2 1 hbase 2 2 5 各种配置之后 出现的错误具体为 进去 hbase shell 之后 出现 hbase main 00
  • C#协变

    namespace 协变 public class Animal public string name public Animal string name1 name name1 public class dog Animal public
  • 【vue】vue 中插槽的三种类型:

    文章目录 一 匿名插槽 二 具名插槽 三 作用域插槽 一 匿名插槽
  • CSS学习笔记——搭建京东购物车网页

    大家好 作为一名互联网行业的小白 写博客只是为了巩固自己学习的知识 但由于水平有限 博客中难免会有一些错误出现 有不妥之处恳请各位大佬指点一二 博客主页 链接 https blog csdn net weixin 52720197 spm
  • elasticsearch心得记录-搭建到使用过程中

    1 es评分机制 使用场景 匹配多个关键词的时候 增加其中某个关键词的权重 增加其评分 搜索出来即可排到前面 评分默认为倒叙排 2 es基础的增删改查 搜索 search type dfs query then fetch 每个分片会根据
  • 条码规范——Code 93

    CODE 93 BACKGROUND INFORMATION Code 93 was designed to complement and improve upon Code 39 Code 93 is similar in that it
  • 在线代码测试小项目

    小项目 代码在线测试 http是我们生活中最常使用的协议 现如今网络浏览器越来越贴近人们的生活 使得做什么事都很方便 但是想要运行一段代码还得需要在电脑指定的环境下来运行 这在有些情况下让人很抓狂 我在网上也看到过很多代码在线测试的网页 感
  • 模块打包器Webpack详解!

    Webpack 1 什么是Webpack Webpack 是一个前端资源加载 打包工具 它将根据模块的依赖关系进行静态分析 然后将这些模块按照指定的规则生成对应的静态资源 从图中我们可以看出 Webpack 可以将多种静态资源 js css
  • 关于c语言main函数中int argc,char **argv的理解

    关于c语言main函数中int argc char argv的理解 c语言main函数通常形如int main int argc char argv 那么argc和argv代表啥呢 其实 argc表示传入main函数的参数的个数 而argv
  • Spark【Spark SQL(四)UDF函数和UDAF函数】

    UDF 函数 UDF 是我们用户可以自定义的函数 我们通过SparkSession对象来调用 udf 的 register name String func A1 A2 A3 方法来注册一个我们自定义的函数 其中 name 是我们自定义的函
  • MATLAB机器学习方法之朴素贝叶斯算法

    朴素贝叶斯分类算法的核心算法是 或 而如果所有特征都相互独立的话 P 特征 类别k 可以看作 P 特征1 类别k P 特征2 类别k P 特征3 类别k P 特征n 类别k 那么分别计算P 特征 类别1 P 特征 类别2 P 特征 类别3
  • paddlenlp二分类引入评估召回率F1指标 paddle.metric Accuracy

    每个具体的参数代表什么 明确好 无非就是第几个样本 属于某个类别的概率 非常清晰 from paddlenlp metrics import AccuracyAndF1 paddle no grad def evaluate model c
  • 基础知识——BCD码

    十六进制转二进制 将每一位十六进制转化为4位二进制位即可 BCD码 将十进制的每一位转化为4位二进制位即可 转换方法都是将每一位转为4位二进制位 但是区别是一个对应的是十六进制 一个对应的是十进制 比如给出二进制数0101 0101 如果对
  • muduo Timestamp详解

    1 简介 Timestamp用于提供时间戳相关的工具函数 2 类与接口 string toString const 返回时间的字符串形式 例如1649224501 687051 string toFormattedString bool s