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::gmtime 及 std::localtime 所共享的静态 std::tm 对象。POSIX 标记此函数为过时,并推荐用 std::strftime 替代。
对于导致字符串长于 25 字符(例如,10000 年)的 std::time_t 的值,其行为可能未定义。
示例
运行此代码
#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) |
按照指定格式格式化并输出日期/时间值 (函数模板) |