ctime, ctime_s
|
定义于头文件
<time.h>
|
||
| (1) | ||
|
char
*
ctime
(
const
time_t
*
timer
)
;
|
(C23前) | |
|
[
[
deprecated
]
]
char
*
ctime
(
const
time_t
*
timer
)
;
|
(C23起) | |
|
errno_t ctime_s
(
char
*
buf, rsize_t bufsz,
const
time_t
*
timer
)
;
|
(2) | (C11起) |
-
-
buf或timer是空指针 -
bufsz小于 26 或大于 RSIZE_MAX
-
-
与所有边界检查函数一样,仅当实现定义了
__STDC_LIB_EXT1__
,且用户在包含
<time.h>
之前将
__STDC_WANT_LIB_EXT1__
定义为整型常量
1
时,才保证
ctime_s可用。
结果字符串具有以下格式:
Www Mmm dd hh:mm:ss yyyy\n
-
Www- 星期几(取值为Mon、Tue、Wed、Thu、Fri、Sat、Sun之一)。 -
Mmm- 月份(取值为Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Dec之一)。 -
dd- 日期 -
hh- 小时 -
mm- 分钟 -
ss- 秒 -
yyyy- 年份
该函数不支持本地化。
目录 |
参数
| timer | - | 指向 time_t 对象的指针,用于指定要打印的时间 |
| buf | - |
指向字符数组首元素的指针,该数组大小至少为
bufsz
|
| bufsz | - |
最大输出字节数,通常为
buf
所指向缓冲区的大小
|
返回值
buf
指向的数组),失败时返回非零值(此时除非
buf
为空指针或
bufsz
为零或大于
RSIZE_MAX
,否则始终向
buf
[
0
]
写入终止空字符)。
注释
ctime
返回指向静态数据的指针且非线程安全。此外,它会修改可能被
gmtime
和
localtime
共享的静态
tm
对象。POSIX 将此函数标记为过时并推荐改用
strftime
。C 标准同样建议使用
strftime
替代
ctime
和
ctime_s
,因为
strftime
具有更灵活的本地化敏感性。
对于会导致字符串长度超过25个字符的
time_t
值(例如年份10000),
ctime
的行为是未定义的。
示例
可能的输出:
Tue May 26 21:51:03 2015 Tue May 26 21:51:03 2015
参考文献
- C17 标准 (ISO/IEC 9899:2018):
-
- 7.27.3.2 ctime 函数 (页: 287-288)
-
- K.3.8.2.2 ctime_s 函数 (页: 454)
- C11 标准 (ISO/IEC 9899:2011):
-
- 7.27.3.2 ctime 函数 (p: 393)
-
- K.3.8.2.2 ctime_s 函数 (p: 626)
- C99标准(ISO/IEC 9899:1999):
-
- 7.23.3.2 ctime函数(页码:342)
- C89/C90 标准 (ISO/IEC 9899:1990):
-
- 4.12.3.2 ctime 函数
参见
|
(C23中已弃用)
(C11)
|
将
tm
对象转换为文本表示形式
(函数) |
|
将
tm
对象转换为自定义文本表示形式
(函数) |
|
|
C++ 文档
关于
ctime
|
|