strftime
来自cppreference.com
定义于头文件 <time.h>
|
||
(C99 前) | ||
(C99 起) | ||
按照格式字符串 format
,转换来自给定的日历时间 time
的日期和时间信息,为空终止多字节字符串 str
。最多写入 count
字节。
参数
str | - | 指向待输出 char 数组首元素的指针
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
count | - | 最大写入字节数 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
format | - | 指向指定转换格式的空终止多字节字符串指针。
格式字符串由零或更多个说明符和通常字符(除
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
time | - | 指向指定待格式化时间的 struct tm 对象
|
返回值
成功时,返回写入 str
所指向的字符数组的字节数,不包含终止 '\0' 。若在能存储整个字符串前抵达 count
,则返回 0 ,写入内容是未定义的。
示例
运行此代码
#include <stdio.h> #include <time.h> #include <locale.h> int main(void) { char buff[70]; struct tm my_time = { .tm_year=112, // = 2012年 .tm_mon=9, // = 10月 .tm_mday=9, // = 9日 .tm_hour=8, // = 8时 .tm_min=10, // = 10分 .tm_sec=20 // = 20秒 }; if (strftime(buff, sizeof buff, "%A %c", &my_time)) { puts(buff); } else { puts("strftime failed"); } setlocale(LC_TIME, "el_GR.utf8"); if (strftime(buff, sizeof buff, "%A %c", &my_time)) { puts(buff); } else { puts("strftime failed"); } }
输出:
Sunday Sun Oct 9 08:10:20 2012 Κυριακή Κυρ 09 Οκτ 2012 08:10:20 πμ EST
引用
- C11 标准(ISO/IEC 9899:2011):
- 7.27.3.5 The strftime function (p: 394-397)
- C99 标准(ISO/IEC 9899:1999):
- 7.23.3.5 The strftime function (p: 343-347)
- C89/C90 标准(ISO/IEC 9899:1990):
- 4.12.3.5 The strftime function
参阅
(C23)(C11) |
将 struct tm 对象转换成文本表示 (函数) |
(C23)(C11) |
将 struct time_t 对象转换成文本表示 (函数) |
(C95) |
将 struct tm 对象转换成自定义宽字符文本表示 (函数) |