strftime 格式化time_t结构体
时间: 2024-12-04 20:23:30 浏览: 19
`strftime()` 是 C 标准库中的一个函数,它用于将时间戳转换成按照特定格式字符串表示的日期和时间。这个函数通常配合 `time.h` 头文件中的 `time_t` 结构体一起使用,`time_t` 存储的是自 Unix 纪元(1970年1月1日 00:00:00 GMT)以来的秒数。
`strftime` 的基本语法如下:
```c
char *strftime(char *s, size_t maxsize, const char *format, struct tm *timeptr);
```
参数说明:
- `s`: 指向的目标缓冲区,用于存储格式化的日期和时间。
- `maxsize`: 缓冲区的最大大小(包括结尾的空字符)。
- `format`: 格式化字符串,其中包含占位符,例如 `%Y` 表示四位数的年份、`%m` 表示月份等。
- `timeptr`: 包含时间信息的 `struct tm` 结构体,它从 `localtime` 或 `gmtime` 函数获取。
当你想要将当前系统时间格式化为特定字符串,可以这样做:
```c
#include <stdio.h>
#include <time.h>
#include <string.h>
int main() {
time_t current_time = time(0); // 获取当前时间
struct tm* t = localtime(¤t_time); // 转换为本地时间
char formatted_time[80]; // 定义足够大的缓冲区
if (strftime(formatted_time, sizeof(formatted_time), "%Y-%m-%d %H:%M:%S", t) == 0) {
printf("Error formatting time.\n");
} else {
printf("Formatted Time: %s\n", formatted_time);
}
return 0;
}
```
在这个例子中,`"%Y-%m-%d %H:%M:%S"` 就是一个常见的格式化字符串,输出类似 "2023-04-06 15:30:00"。
阅读全文