C++ strftime函数
时间: 2024-08-14 09:08:40 浏览: 84
C++ 的 `strftime()` 函数用于格式化时间戳(`time_t` 或 `tm` 类型)到可打印的字符串中。这个函数的基本原型如下[^1]:
```cpp
size_t strftime(char* str, size_t count, const char* format, const tm* time);
```
参数说明:
- `str`: 存储格式化后的字符串的目标指针。
- `count`: 字符数组 `str` 的大小,表示可以容纳的字符数。
- `format`: 格式字符串,定义了日期和时间的显示方式。
- `time`: 时间信息结构体 `tm` 的指针,通常由 `localtime()` 或 `gmtime()` 函数从 `time_t` 时间戳获取。
下面是一个简单的示例[^2],展示了如何使用 `strftime()` 来获取当前日期和时间:
```cpp
#include <iostream>
#include <time.h> // 包含 strftime 和 localtime
int main() {
time_t t = time(nullptr); // 获取当前时间戳
char buf[40]; // 定义一个缓冲区来存储结果
struct tm *timeinfo;
timeinfo = localtime(&t); // 转换为本地时间格式
int n = strftime(buf, sizeof buf, "%A, %d %B %Y %X", timeinfo); // 格式化并保存到buf中
if (n == 0) {
std::cerr << "无法格式化时间!" << std::endl;
} else {
std::cout << "写入后,目标字符串中内容:" << buf << std::endl;
}
return 0;
}
```
在这个例子中,`%A, %d %B %Y %X` 是格式化字符串,分别对应周几、月日、月份、年份和时间。`strftime()` 返回成功格式化后的字符数,如果返回0则表示格式化失败。
阅读全文