文章目录

  • 前言
  • 正文
    • 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时间戳(分别以秒和毫秒为单位)的几种方法相关推荐

  1. 【js基础】js获取时间戳(Date的总毫秒数)的4种方法

    1. 什么是时间戳 不是当前时间的毫秒数,而是距离1970年1月1日过了多少毫秒数. 2. 实现方法 2.1 valueOf() 代码: var date = new Date(); console. ...

  2. 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_其他方 ...

  3. 如何在C#中获取Unix时间戳

    本文翻译自:How to get the unix timestamp in C# 我曾经看过stackoverflow,甚至看过一些建议的问题,但似乎都没有答案,如何在C#中获得unix时间戳? # ...

  4. Java获取unix时间戳

    获取unix时间戳 String dateStr = Long.toString(System.currentTimeMillis()/1000L); 参考链接: https://zhidao.bai ...

  5. linux临时配置mac地址,Linux获取网卡型号、mac地址、修改IP地址的几种方法

    1.获取所有有(无)网卡型号 方法一.ifconfig 用法:ifconfig | grep | cut -d ':' -f 1 ubuntu root@ubuntu:~# ifconfig | gr ...

  6. 【unix时间戳小示例】linux/unix系统获取unix时间戳

    unix时间戳 unix时间戳是从1970年1月1日(UTC/GMT的午夜(0时0点0分))开始所经过的秒数,不考虑闰秒. C 库函数 - gmtime() C 库函数 struct tm *gmti ...

  7. 如何在 JavaScript 中获取 UNIX 时间戳

    UNIX 时间戳是一个整数值,表示自UNIX 纪元于 1970 年 1 月 1 日 00:00:00 UTC以来经过的秒数.简而言之,这是一种将时间跟踪为运行总秒数的方法.因此,UNIX 时间戳只是特 ...

  8. 简单获取unix时间戳

    我们经常需要使用unix时间戳计算.有很多方法可以取得unix时间戳. 目前取得unix时间戳最简单最快的方法是: const dateTime = Date.now(); const timesta ...

  9. java joda 获取utc时间_java – 使用JodaTime以毫秒为单位的UTC到本地时间

    我试图使用Jodatime显示特定时间段内的交易. 我们的服务器要求开始日期和结束日期为UTC(这可能是显而易见的).因此,围绕它们的任何业务逻辑都使用DateTime对象,时区设置为DateTime ...

  10. ios 获取html的高度,iOS Webview自适应实际内容高度的4种方法详解

    //第一种方法 - (void)webViewDidFinishLoad:(UIWebView *)webView { CGFloat webViewHeight=[webView.scrollVie ...

最新文章

  1. golang 远程传输文件
  2. 第二十四期:管理 | 成功领导远程IT团队的7个技巧
  3. 【java】关于Map的排序性的一次使用,有序的Map
  4. 蔚来将推第三款SUV 续航超500km 明年有望交付
  5. 【zookeeper】zookeeper 启动 源码解读
  6. 移植qt5.3.1到arm
  7. pandas删除有空值的一行
  8. Android项目实践--《智慧校园》
  9. Win10 底部应用图标显示不正常(空白)
  10. 转载:MHL原理剖析
  11. 从影片《点球成金》看大数据如何创造商业奇迹!
  12. Hbase的scan原理
  13. DB2-------
  14. CORBA_百度百科
  15. 统信软件宣布旗下深度社区全新规划 打造我国主导的全球桌面系统根社区
  16. Fiddler 抓包HTTPS包,抓手机包
  17. form表单中onclick事件和onsubmit事件的执行顺序
  18. 为了提高python代码运行速度和进行_一行代码让你的python运行速度提高100倍
  19. 给培训出来的Java程序员的一点建议,教你如何找工作
  20. node.js fs模块_Node.js中的fs模块简介

热门文章

  1. Java8 判空新写法!
  2. 证明您履历表经验的防弹五步法
  3. 爬取百度贴吧发帖信息并保存到scv文件中
  4. linux刷机软件,MTK平台刷机工具——SP_Flash_Tool
  5. iOS 删除本地文件
  6. CS61a-2020fall学习笔记
  7. 关于VLAN的几种接口模式
  8. 使用matlab进行三角函数拟合
  9. C语言程序设计 课程设计报告
  10. 乾颐堂现任明教教主(2014年课程)TCPIP协议详解卷一 第十节课笔记