全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C++如何获取当前时间?(chrono库使用教程)

最推荐的方式是调用 std::chrono::system_clock::now() 获取高精度跨平台时间点,再通过 to_time_t 转换为 time_t,结合线程安全的 localtime_s/localtime_r 转为 tm,最后用 std::put_time 格式化输出。

std::chrono 获取当前时间最推荐的方式是调用 std::chrono::system_clock::now(),它返回一个高精度、跨平台的时间点(time_point),再配合格式化转换就能得到可读的时间字符串。

获取系统当前时间点

std::chrono::system_clock::now() 是 C++11 引入的标准方式,代表自纪元(通常是 1970-01-01 00:00:00 UTC)以来的时间。它不依赖本地时区,但可转换为本地时间。

  • 返回类型是 std::chrono::time_point<:chrono::system_clock>
  • 精度由实现决定(通常为纳秒或微秒),可用 time_since_epoch().count() 提取底层计数值
  • 不能直接输出,需转为 std::time_t 或使用 C++20 的 (或传统 C 风格转换)

转成可读的日期时间字符串(C++11/14/17)

借助 std::chrono::system_clock::to_time_t 和 C 标准库函数(如 localtime_s / localtime_rgmtime)完成格式化:

  • 先用 system_clock::to_time_t(now) 转为 time_t
  • 再用线程安全版本(如 Windows 用 localtime_s,Linux/macOS 用 localtime_r)转为 tm 结构体
  • 最后用 std::put_timestrftime 格式化输出

示例(本地时间):

auto now = std::chrono::system_clock::now();
std::time_t t = std::chrono::system_clock::to_time_t(now);
std::tm tm{};
#ifdef _WIN32
    localtime_s(&tm, &t);
#else
    localtime_r(&t, &tm);
#endif
std::cout << std::put_time(&tm, "%Y-%m-%d %H:%M:%S") << '\n';

C++20 起更简洁的方式:使用 +

C++20 标准支持直接格式化 time_point,无需经过 time_ttm 中转:

  • 包含头文件
  • std::format(std::chrono::system_clock::now(), u8"%Y-%m-%d %H:%M:%S")
  • 自动处理时区(默认为本地时区),也支持 UTC:std::chrono::utc_clock::now()

注意:需编译器支持(GCC 13+、Clang 15+、MSVC 2025 17.4+),并开启 -std=c++20

获取毫秒/微秒级时间戳(适合日志或性能测量)

若只需数字形式的时间戳(如记录毫秒数),可直接从 time_point 提取:

  • auto ms = std::chrono::duration_cast<:chrono::milliseconds>(now.time_since_epoch()).count();
  • auto us = std::chrono::duration_cast<:chrono::microseconds>(now.time_since_epoch()).count();
  • 这类整数适合日志前缀、计时差值计算,也便于序列化存储

注意:不要用 count() 直接当作“毫秒时间戳”理解——它是相对于纪元的总毫秒数,不是当前小时内的毫秒。


# linux  # windows  # mac  # c++  # macos  # win  # 格式化输出  # cos  # 标准库  # count  # format  # auto  # 字符串  # 结构体  # 线程  # 转换为  # 就能  # 只需  # 它是  # 这类  # 再用  # 可直接  # 相对于  # 它不  # 先用 


相关文章: 建站之星手机一键生成:多端自适应+小程序开发快速建站指南  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  香港网站服务器数量如何影响SEO优化效果?  建站主机数据库如何配置才能提升网站性能?  如何快速搭建高效简练网站?  广州营销型建站服务商推荐:技术优势与SEO优化解析  如何在阿里云高效完成企业建站全流程?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  做企业网站制作流程,企业网站制作基本流程有哪些?  ui设计制作网站有哪些,手机UI设计网址吗?  网站制作说明怎么写,简述网页设计的流程并说明原因?  焦点电影公司作品,电影焦点结局是什么?  企业微网站怎么做,公司网站和公众号有什么区别?  广州建站公司哪家好?十大优质服务商推荐  已有域名和空间如何快速搭建网站?  网站制作新手教程,新手建设一个网站需要注意些什么?  如何在VPS电脑上快速搭建网站?  上海网站制作开发公司,上海买房比较好的网站有哪些?  如何用景安虚拟主机手机版绑定域名建站?  金*站制作公司有哪些,金华教育集团官网?  如何通过免费商城建站系统源码自定义网站主题与功能?  如何用腾讯建站主机快速创建免费网站?  视频网站app制作软件,有什么好的视频聊天网站或者软件?  婚礼视频制作网站,学习*后期制作的网站有哪些?  制作网站的公司有哪些,做一个公司网站要多少钱?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  专业网站建设制作报价,网页设计制作要考什么证?  免费网站制作appp,免费制作app哪个平台好?  简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  已有域名如何免费搭建网站?  如何快速搭建支持数据库操作的智能建站平台?  高端建站如何打造兼具美学与转化的品牌官网?  5种Android数据存储方式汇总  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  建站三合一如何选?哪家性价比更高?  Android自定义控件实现温度旋转按钮效果  常州企业建站如何选择最佳模板?  山东云建站价格为何差异显著?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  建站主机核心功能解析:服务器选择与网站搭建流程指南  零基础网站服务器架设实战:轻量应用与域名解析配置指南  如何通过虚拟主机快速搭建个人网站?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  如何在阿里云部署织梦网站?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。