首页 > 后端开发 > C++ > 正文

c++ 获取系统当前时间 c++时间戳获取方法

裘德小鎮的故事
发布: 2025-12-01 13:39:06
原创
923人浏览过
C++中获取时间戳常用方法包括:①使用std::chrono获取毫秒或秒级高精度时间戳,推荐现代C++开发;②调用std::time获取秒级时间戳,简单通用;③在POSIX系统下用gettimeofday获取微秒级精度,但已过时建议慎用;④结合localtime和strftime格式化输出可读时间。日常优先推荐std::chrono,跨平台且类型安全。

c++ 获取系统当前时间 c++时间戳获取方法

在 C++ 中获取系统当前时间或时间戳有多种方法,常用的方式包括使用 <chrono><time.h><sys/time.h>(POSIX 系统)。以下是几种实用且跨平台或平台相关的实现方式。

使用 chrono 获取毫秒级时间戳(C++11 及以上推荐)

chrono 是 C++11 引入的时间库,精度高,类型安全,适合现代 C++ 开发。

#include <iostream>
#include <chrono>

auto now = std::chrono::high_resolution_clock::now();
auto timestamp = std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()).count();

输出示例:

std::cout << "当前时间戳(毫秒): " << timestamp << std::endl;

如果你需要秒级时间戳,替换为 seconds

立即学习C++免费学习笔记(深入)”;

auto timestamp = std::chrono::duration_cast<std::chrono::seconds>(now.time_since_epoch()).count();

[置顶]Android中的JSON详细总结 中文WORD版
[置顶]Android中的JSON详细总结 中文WORD版

JSON(JavaScript Object Notation) 定义:一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。有需要的朋友可以下载看看

[置顶]Android中的JSON详细总结 中文WORD版 0
查看详情 [置顶]Android中的JSON详细总结 中文WORD版

使用 time() 获取秒级时间戳(最简单)

适用于只需要精确到秒的场景。

#include <ctime>
#include <iostream>

std::time_t now = std::time(nullptr);
std::cout << "当前时间戳(秒): " << now << std::endl;

也可以格式化输出可读时间:

std::cout << "本地时间: " << std::ctime(&now);

使用 gettimeofday(仅限 Linux/Unix)

如果需要微秒级精度且运行在 POSIX 系统上,可以使用 gettimeofday

#include <sys/time.h>
#include <iostream>

struct timeval tv;
gettimeofday(&tv, nullptr);
long timestamp_us = tv.tv_sec * 1000000 + tv.tv_usec; // 微秒
long timestamp_ms = tv.tv_sec * 1000 + tv.tv_usec / 1000; // 毫秒

std::cout << "时间戳(毫秒): " << timestamp_ms << std::endl;

格式化输出当前日期时间

结合 localtimestrftime 输出易读时间。

#include <ctime>
#include <iostream>
#include <string>

std::time_t now = std::time(nullptr);
std::tm* local = std::localtime(&now);
char buffer[100];
std::strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", local);
std::string str_time(buffer);

std::cout << "当前时间: " << str_time << std::endl;

基本上就这些。日常开发推荐优先使用 std::chrono,跨平台、高精度、不易出错。如果只是记录日志或简单计时,std::time 也足够用。Linux 下需要微秒可用 gettimeofday,但注意它已标记为过时(obsolescent),长期建议仍用 chrono。

以上就是c++++ 获取系统当前时间 c++时间戳获取方法的详细内容,更多请关注php中文网其它相关文章!

c++速学教程(入门到精通)
c++速学教程(入门到精通)

c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号