新闻中心
C++获取当前时间戳_C++获取系统时间及格式化
使用std::chrono可获取秒级和毫秒级时间戳;2. 结合std::strftime可格式化输出年-月-日 时:分:秒;3. 手动提取毫秒部分可实现带毫秒的时间字符串;4. 传统方法用time()和localtime()适合简单场景,但线程不安全。

在C++中获取当前时间戳以及系统时间并进行格式化,是开发中常见的需求,比如用于日志记录、性能监控或文件命名等场景。下面介绍几种常用的方法,涵盖从简单的时间戳获取到格式化输出的完整流程。
C++获取当前时间戳(秒级/毫秒级)
使用 std::chrono 是现代C++推荐的方式,可以精确获取时间戳。
秒级时间戳:#include <chrono> auto now = std::chrono::system_clock::now(); auto timestamp = std::chrono::duration_cast<std::chrono::seconds>(now.time_since_epoch()).count(); // 输出示例:1718000000
毫秒级时间戳:
auto timestamp_ms = std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()).count(); // 输出示例:1718000000123
获取系统时间并格式化为可读字符串
结合 std::chrono 和 std::ctime 或 std::strftime 可将时间转换为年-月-日 时:分:秒 格式。
#include <iostream> #include <chrono> #include <ctime> <p>auto now = std::chrono::system_clock::now(); auto time_t = std::chrono::system_clock::to_time_t(now);</p><p>// 转换为本地时间 std::tm* local_tm = std::localtime(&time_t);</p><p>char buffer[80]; std::strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", local_tm);</p><p>std::cout << "当前时间: " << buffer << std::endl; // 输出示例:2025-06-10 15:30:45
常用格式化符号说明:
- %Y:四位年份(如 2025)
- %m:月份(01-12)
- %d:日期(01-31)
- %H:小时(00-23)
- %M:分钟(00-59)
- %S:秒(00-59)
- %F:等价于 %Y-%m-%d
- %T:等价于 %H:%M:%S
组合使用:获取带毫秒的格式化时间
如果需要显示到毫秒级别,需手动提取毫秒部分。
美图云修
商业级AI影像处理工具
50
查看详情
#include <iostream> #include <chrono> #include <ctime> #include <iomanip> <p>auto now = std::chrono::system_clock::now(); auto time_t = std::chrono::system_clock::to_time_t(now); auto ms = std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()) % 1000;</p><p>std::tm* tm = std::localtime(&time_t);</p><p>char buffer[80]; std::strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", tm);</p><p>std::cout << std::fixed << std::setfill('0') << std::setw(3) << ms.count(); // 输出示例:2025-06-10 15:30:45.123
传统方法:使用 time() 和 localtime()
适用于C风格代码或对性能要求不高的场景。
#include <ctime> #include <iostream> <p>std::time_t t = std::time(nullptr); char* str = std::ctime(&t); // 包含换行符 str[strcspn(str, "\n")] = 0; // 去除换行 std::cout << "当前时间: " << str << std::endl;
注意:std::ctime 返回的是静态缓冲区内容,线程不安全,多线程环境下建议使用 localtime_s(Windows)或 localtime_r(Linux)。
基本上就这些。用 std::chrono 更现代、灵活,适合高精度需求;而传统 time + strftime 更简洁,适合基本格式输出。根据项目需求选择即可。
以上就是C++获取当前时间戳_C++获取系统时间及格式化的详细内容,更多请关注其它相关文章!
# 有什么区别
# 赣州seo推广排名
# 关键词排名有
# 大型网站建设最专业
# 营销活动落地推广案例
# 品牌营销策划推广方案
# 淮安外贸网站建设推广
# 互动网站建设路串串
# 闲鱼搜索关键词排名第一
# 福州网站推广怎么做赚钱
# 瑞安谷歌seo
# 适用于
# 网络编程
# 的是
# linux
# 不安全
# 转换为
# 第三方
# 微软
# 多线程
# 美图
# 格式化输出
# stream
# win
# ios
# c++
# windows
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
taptap防沉迷怎么解除 taptap解除健康系统限制说明【2025最新】
知音漫客正版漫画平台_知音漫客官网账号登录
PDF文件体积过大处理_PDF压缩技巧详解
MAC的“快捷指令”怎么同步到iPhone_MAC利用iCloud同步所有设备的自动化指令
C++如何生成随机数_C++ random库使用方法与范围设置
163邮箱注册官网 免费申请163个人邮箱
蛙漫正版漫画平台入口_蛙漫免费阅读全站漫画资源
css子元素高度不一致导致布局错位怎么办_使用align-items:stretch解决高度差异
React Router v6 教程:构建认证保护的私有路由与重定向策略
React Router 嵌套组件中 URL 重定向问题的解决方案
痛风发作了怎么办? 快速止痛和后期饮食调理
Mac怎么锁定备忘录_Mac备忘录加密设置教程
腾讯视频怎么使用多账号家庭管理_腾讯视频家庭多账号统一管理与权限分配教程
Lar*el递归关系中排除子孙节点的策略
HTML元素状态管理:根据DIV内容动态启用/禁用按钮
从J*aScript对象中精确提取指定属性的教程
vivo云服务网页版登录 怎么登录vivo云服务网页版
妖精漫画网页版登录入口免费_妖精漫画官网主页直接阅读漫画
CSS Box Model与弹性按钮:维持布局稳定的动画实践
Win11怎么设置开机NumLock亮 Win11修改注册表InitialKeyboardIndicators值
iwriter统一登录平台 iwrite账号密码登录页面
c++如何使用chrono库处理时间_c++标准库时间与日期操作
CSS Flexbox与媒体查询:实现响应式布局中元素的并排与堆叠
PHP表单数据传递:如何通过隐藏输入字段获取动态ID
智慧团建扫码登录入口 智慧团建扫码登录入口官网版
J*aScript map 方法中处理循环元素为空数组的策略
AO3中文官网链接_AO3网页版稳定镜像站
Golang如何处理RPC请求负载均衡_Golang RPC请求负载均衡策略与实践
我的世界官方游戏入口 我的世界官网平台直达链接
css链接悬停下划线样式如何自定义_使用::after结合content和transition
钉钉视频会议声音异常如何处理 钉钉会议音频修复技巧
今日头条怎么同步内容到抖音_今日头条内容同步到抖音教程
蛙漫漫画免费阅读入口_蛙漫官方正版无广告纯净版
JUnit5/Mockito:优雅测试内部依赖与异常处理的实践
PHP 枚举:根据字符串获取枚举案例的策略与实现
解决移动端滚动问题的overflow属性应用指南
Android Studio计算器C键功能异常排查与修复教程
HTML长属性值处理:表单action路径优化与代码规范应对
J*a应用程序首次运行自动创建文件与目录的最佳实践
QQ邮箱官方网站登录入口_QQ邮箱网页版在线使用
如何创建没有密码的Windows本地账户_跳过微软账户登录的技巧【教程】
EMS快递官网app_中国邮政速递物流手机客户端
没有大陆身份证/银行卡如何实名微信? 亲测有效的几种方法分享
漫蛙漫画登录站点 漫蛙2正版漫画快速访问
如何使用J*aScript精确选择并批量修改特定父元素下子链接的样式
抖音网页版快捷访问 抖音网页版网页版入口操作教程
从OpenAI API响应中高效提取生成文本
聚水潭ERP登录页面入口 聚水潭ERP官网登录界面
淘宝网网页版登录入口 淘宝官方网页版快捷登录
双系统安装时,如何设置默认启动系统? msconfig命令了解一下!


2025-11-26
浏览次数:次
返回列表
td::chrono::milliseconds>(now.time_since_epoch()) % 1000;</p><p>std::tm* tm = std::localtime(&time_t);</p><p>char buffer[80];
std::strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", tm);</p><p>std::cout << std::fixed << std::setfill('0') << std::setw(3) << ms.count();
// 输出示例:2025-06-10 15:30:45.123