C++时间戳获取
1. tm 结构体
在标准C/C++中,我们可通过tm结构来获得日期和时间,tm结构在time.h中的定义如下:
#ifndef _TM_DEFINED struct tm { int tm_sec; /* 秒 – 取值区间为[0,59] */ int tm_min; /* 分 - 取值区间为[0,59] */ int tm_hour; /* 时 - 取值区间为[0,23] */ int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */ int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */ int tm_year; /* 年份,其值等于实际年份减去1900 */ int tm_wday; /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */ int tm_yday; /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */ int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/ }; #define _TM_DEFINED #endif
std::put_time()函数
https://www.yiibai.com/cpp_standard_library/cpp_put_time.html
2. 当前时间戳
#include <sys/time.h> #include <ctime> static char* get_local_time(char *time_str, int len, struct timeval *tv) { struct tm* ptm; char time_string[40]; long milliseconds; ptm = localtime (&(tv->tv_sec)); // Output format: 2018-12-09 10:52:57.200 strftime(time_string, sizeof(time_string), "%Y-%m-%d %H:%M:%S", ptm); milliseconds = tv->tv_usec/1000; snprintf (time_str, len, "%s.%03ld", time_string, milliseconds); return time_str; } char local_time_str[128]; timeval current_time_tmp; gettimeofday(¤t_time_tmp, NULL); char *p_local_time = NULL; p_local_time = get_local_time(local_time_str, sizeof(local_time_str), ¤t_time_tmp); printf("current_time_tmp %s\n", p_local_time);
这是基于 ctime 和 timeval 结构体实现的对当前系统时间的可视化,精确到 ms,一般情况下精度是足够了。
参考资料
[1] 【Linux编程】如何将gettimeofday获取的时间信息转换成可显示的字符串时间? https://blog.csdn.net/szullc/article/details/84946251
标签:
Linux/Bash
, C/C++
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具