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

C++中获取时间戳常用方法包括:①使用std::chrono获取毫秒或秒级高精度时间戳,推荐现代C++开发;②调用std::time获取秒级时间戳,简单通用;③在POSIX系统下用gettimeofday获取微秒级精度,但已过时建议慎用;④结合localtime和strftime格式化输出可读时间。日常优先推荐std::chrono,跨平台且类型安全。

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

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

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

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

#include iostream>
#include

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

输出示例:

std::cout

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

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

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

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

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

#include
#include stream>

std::time_t now = std::time(nullptr);
std::cout

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

std::cout

使用 gettimeofday(仅限 Linux/Unix)

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

#include
#include

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

格式化输出当前日期时间

结合 localtimestrftime 输出易读时间。

#include
#include
#include

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1487234.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月19日 10:30:34
下一篇 2025年12月19日 10:30:44

相关推荐

发表回复

登录后才能评论
关注微信