C语言如何打印系统时间,精确到毫秒
时间: 2024-09-15 11:05:09 浏览: 65
在C语言中,可以使用`time.h`头文件提供的`time`和`localtime`函数获取系统时间,并使用`strftime`函数进行格式化输出。要精确到毫秒,可以结合`gettimeofday`函数来实现,因为`time`相关的函数只提供了秒级的精度。以下是一个示例代码,展示了如何打印系统时间,包括年、月、日、小时、分钟、秒和毫秒:
```c
#include <stdio.h>
#include <time.h>
#include <sys/time.h>
int main() {
struct timeval tv;
struct tm *tm_info;
char buffer[80];
// 获取当前时间的秒和微秒
gettimeofday(&tv, NULL);
// 转换为tm结构体
tm_info = localtime(&tv.tv_sec);
// 使用strftime格式化输出年、月、日、小时、分钟、秒
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", tm_info);
// 输出毫秒
printf("%s.%03ld\n", buffer, tv.tv_usec / 1000);
return 0;
}
```
上述代码中,`gettimeofday`函数获取了当前时间的秒和微秒,其中`tv.tv_sec`是秒,`tv.tv_usec`是微秒。由于毫秒需要3位数,所以将微秒部分除以1000进行转换。`localtime`函数将秒数转换为`tm`结构体,该结构体包含了详细的日期和时间信息。然后`strftime`函数用于格式化输出不包括毫秒的时间信息。
阅读全文