C++获取Unix时间戳(分别以秒和毫秒为单位)的几种方法
文章目录
- 前言
- 正文
- 1、调用ctime库
- 2、调用chrono
- 3、调用sys/timeb.h
- 总结
前言
有时需要打印当前的绝对时间,并计算时间间隔,Unix时间戳是一种很好的时间记录标准,表示从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。C++的标准库中并没有能够打印时间戳的方法,需要借助其它第三方库,在此记录了几种方法
正文
1、调用ctime库
#include <iostream>
#include <ctime>int main()
{std::time_t t = std::time(0); // t is an integer typestd::cout << t << " seconds since 01-Jan-1970\n";return 0;
}
输出为:
1467214075 seconds since 01-Jan-1970
该方法只适用于表示以秒为单位的Unix时间戳。
2、调用chrono
#include <iostream>
#include <chrono>int main()
{std::chrono::milliseconds ms = std::chrono::duration_cast< std::chrono::milliseconds >(std::chrono::system_clock::now().time_since_epoch());std::cout << ms.count() << std::endl;return 0;
}
输出以毫秒为单位的时间戳:
1644848307026
如果想得到以秒为单位的时间戳,只需将milliseconds换成seconds即可。
3、调用sys/timeb.h
#include <iostream>
#include <sys/timeb.h>int main()
{timeb t;ftime(&t);long now = t.time * 1000 + t.millitm;std::cout << now << std::endl;return 0;
}
输出以毫秒为单位的时间戳:
1644848305625
如果想得到以秒为单位的时间戳,需要修改成如下形式:
#include <iostream>
#include <sys/timeb.h>int main()
{timeb t;ftime(&t);int now = t.time;std::cout << now << std::endl;return 0;
}
输出为:
1644848308
总结
以上三种方法最终得到的都是Unix时间戳,其中以ctime库的方法使用最为简单,但只能得到以秒为单位的时间戳,具体使用看需求。
后续有其它方法再不断进行更新。
C++获取Unix时间戳(分别以秒和毫秒为单位)的几种方法相关推荐
- 【js基础】js获取时间戳(Date的总毫秒数)的4种方法
1. 什么是时间戳 不是当前时间的毫秒数,而是距离1970年1月1日过了多少毫秒数. 2. 实现方法 2.1 valueOf() 代码: var date = new Date(); console. ...
- JS-9 JS常见内置类;包装类型;Number类方法与实例方法;Math方法;String类常见方法;数组方法(增删改查+遍历+排序);时间Date 构造函数+获取信息+设置信息+获取Unix时间戳
目录 1_包装类型 2_Number类补充 3_Math对象 4_String类的补充 4.1_基本使用 4.2_修改字符串 4.3_查找.替换字符串 开头与结尾 4.4_获取子字符串 4.5_其他方 ...
- 如何在C#中获取Unix时间戳
本文翻译自:How to get the unix timestamp in C# 我曾经看过stackoverflow,甚至看过一些建议的问题,但似乎都没有答案,如何在C#中获得unix时间戳? # ...
- Java获取unix时间戳
获取unix时间戳 String dateStr = Long.toString(System.currentTimeMillis()/1000L); 参考链接: https://zhidao.bai ...
- linux临时配置mac地址,Linux获取网卡型号、mac地址、修改IP地址的几种方法
1.获取所有有(无)网卡型号 方法一.ifconfig 用法:ifconfig | grep | cut -d ':' -f 1 ubuntu root@ubuntu:~# ifconfig | gr ...
- 【unix时间戳小示例】linux/unix系统获取unix时间戳
unix时间戳 unix时间戳是从1970年1月1日(UTC/GMT的午夜(0时0点0分))开始所经过的秒数,不考虑闰秒. C 库函数 - gmtime() C 库函数 struct tm *gmti ...
- 如何在 JavaScript 中获取 UNIX 时间戳
UNIX 时间戳是一个整数值,表示自UNIX 纪元于 1970 年 1 月 1 日 00:00:00 UTC以来经过的秒数.简而言之,这是一种将时间跟踪为运行总秒数的方法.因此,UNIX 时间戳只是特 ...
- 简单获取unix时间戳
我们经常需要使用unix时间戳计算.有很多方法可以取得unix时间戳. 目前取得unix时间戳最简单最快的方法是: const dateTime = Date.now(); const timesta ...
- java joda 获取utc时间_java – 使用JodaTime以毫秒为单位的UTC到本地时间
我试图使用Jodatime显示特定时间段内的交易. 我们的服务器要求开始日期和结束日期为UTC(这可能是显而易见的).因此,围绕它们的任何业务逻辑都使用DateTime对象,时区设置为DateTime ...
- ios 获取html的高度,iOS Webview自适应实际内容高度的4种方法详解
//第一种方法 - (void)webViewDidFinishLoad:(UIWebView *)webView { CGFloat webViewHeight=[webView.scrollVie ...
最新文章
- golang 远程传输文件
- 第二十四期:管理 | 成功领导远程IT团队的7个技巧
- 【java】关于Map的排序性的一次使用,有序的Map
- 蔚来将推第三款SUV 续航超500km 明年有望交付
- 【zookeeper】zookeeper 启动 源码解读
- 移植qt5.3.1到arm
- pandas删除有空值的一行
- Android项目实践--《智慧校园》
- Win10 底部应用图标显示不正常(空白)
- 转载:MHL原理剖析
- 从影片《点球成金》看大数据如何创造商业奇迹!
- Hbase的scan原理
- DB2-------
- CORBA_百度百科
- 统信软件宣布旗下深度社区全新规划 打造我国主导的全球桌面系统根社区
- Fiddler 抓包HTTPS包,抓手机包
- form表单中onclick事件和onsubmit事件的执行顺序
- 为了提高python代码运行速度和进行_一行代码让你的python运行速度提高100倍
- 给培训出来的Java程序员的一点建议,教你如何找工作
- node.js fs模块_Node.js中的fs模块简介