目录
gettimeofday()
1. 原型
#include <sys/time.h>
int gettimeofday(struct timeval*tv, struct timezone *tz);
2. 说明
获得当前精确时间(1970年1月1日到现在的时间)
其参数tv是保存获取时间结果的结构体,参数tz用于保存时区结果(若不使用则传入NULL即可)。
struct timeval {
long tv_sec; // 秒数
long tv_usec; //微秒数
}
3. 用法
为了将其转换成可读的时间字符串,可以结合 localtime
和 strftime
函数使用。以下是一个简单的示例代码来演示这个过程:
#include <stdio.h>
#include <sys/time.h>
#include <time.h>
int main() {
struct timeval tv;
struct tm *tm_info;
char buffer[26];
// 获取当前时间
gettimeofday(&tv, NULL);
// 将秒转换为可读的时间结构
tm_info = localtime(&tv.tv_sec);
// 格式化时间字符串
strftime(buffer, 26, "%Y-%m-%d %H:%M:%S", tm_info);
// 打印时间和微秒
printf("当前时间: %s.%06ld\n", buffer, tv.tv_usec);
return 0;
}
代码输出:
当前时间: 2024-06-19 10:30:45.123456