C语言 使用 DATE TIME 时间精确到毫秒的显示?
时间: 2024-12-06 14:34:05 浏览: 43
在C语言中,如果你想要获取并显示包含毫秒的时间,通常需要配合`<time.h>`头文件中的几个函数来操作。以下是一个例子,展示了如何使用`time()`、`gmtime()`(处理格林尼治标准时间)和`strftime()`函数来达到目标:
```c
#include <stdio.h>
#include <time.h>
int main() {
// 获取当前时间戳(从1970年至今的秒数,包括微秒)
time_t current_time = time(NULL);
// 转换为时间元组结构,以便包含毫秒
struct timespec timespec;
clock_gettime(CLOCK_MONOTONIC, ×pec);
timespec.tv_sec = current_time; // 使用秒数部分
timespec.tv_nsec = timespec.tv_nsec / 1000 * 1000; // 提取并四舍五入到千分之一秒,即毫秒
// 使用gmtime_r处理整个timespec结构
struct tm* gmt_time = gmtime_r(×pec, NULL);
// 格式化并打印时间,包括毫秒
char buffer[50];
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S,%03ld", gmt_time); // `%03ld`表示三位数的长整型,用于填充三位毫秒
printf("当前时间 (含毫秒): %s\n", buffer);
return 0;
}
```
这段代码首先获取了当前的完整时间,然后将秒数和微秒分开处理,只保留毫秒级别。最后通过`strftime`格式化输出。
阅读全文