std::ctime
来自 cppreference.com
定义在头文件 <ctime> 中 |
||
char* ctime( const std::time_t* time ); |
||
将给定的自纪元以来的时间转换为日历本地时间,然后转换为文本表示,如同通过调用 std::asctime(std::localtime(time))。结果字符串具有以下格式
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
- 年份。
该函数不支持本地化。
内容 |
[编辑] 参数
time | - | 指向一个 std::time_t 对象的指针,指定要打印的时间 |
[编辑] 返回值
指向一个静态空终止字符字符串的指针,该字符串包含日期和时间的文本表示。该字符串可以在 std::asctime 和 std::ctime
之间共享,并且可能会在每次调用这些函数中的任何一个时被覆盖。
[编辑] 说明
此函数返回指向静态数据的指针,并且不是线程安全的。此外,它会修改静态 std::tm 对象,该对象可能与 std::gmtime 和 std::localtime 共享。POSIX 将此函数标记为已过时,并建议使用 std::strftime 代替。
对于导致字符串长度超过 25 个字符的 std::time_t 值,其行为可能是未定义的 (例如,年份 10000)。
[编辑] 示例
运行此代码
#include <cassert> #include <cstring> #include <ctime> #include <iostream> int main() { std::time_t result = std::time(nullptr); std::cout << std::ctime(&result); char buffer[32]; std::strncpy(buffer, std::ctime(&result), 26); assert('\n' == buffer[std::strlen(buffer) - 1]); std::cout << buffer; }
可能的输出
Mon Oct 11 17:10:55 2021 Mon Oct 11 17:10:55 2021
[编辑] 另请参阅
将一个 std::tm 对象转换为文本表示 (函数) | |
将一个 std::tm 对象转换为自定义文本表示 (函数) | |
(C++11) |
根据指定的格式格式化并输出日期/时间值 (函数模板) |
C 文档 for ctime
|