命名空间
变体
操作

std::ctime

来自 cppreference.com
< cpp‎ | chrono‎ | c
 
 
实用工具库
语言支持
类型支持 (基本类型,RTTI)
库特性测试宏 (C++20)
动态内存管理
程序实用工具
协程支持 (C++20)
可变参数函数
调试支持
(C++26)
三向比较
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
通用实用工具
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中已弃用)
整数比较函数
(C++20)(C++20)(C++20)   
(C++20)
交换类型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
通用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
基本字符串转换
(C++17)
(C++17)

 
 
 
定义在头文件 <ctime>
char* ctime( const std::time_t* time );

将给定的自纪元以来的时间转换为日历本地时间,然后转换为文本表示,如同通过调用 std::asctime(std::localtime(time))。结果字符串具有以下格式

Www Mmm dd hh:mm:ss yyyy\n
  • Www - 星期几 (MonTueWedThuFriSatSun 之一)。
  • Mmm - 月份 (JanFebMarAprMayJunJulAugSepOctNovDec 之一)。
  • dd - 月份中的天数。
  • hh - 小时。
  • mm - 分钟。
  • ss - 秒。
  • yyyy - 年份。

该函数不支持本地化。

内容

[编辑] 参数

time - 指向一个 std::time_t 对象的指针,指定要打印的时间

[编辑] 返回值

指向一个静态空终止字符字符串的指针,该字符串包含日期和时间的文本表示。该字符串可以在 std::asctimestd::ctime 之间共享,并且可能会在每次调用这些函数中的任何一个时被覆盖。

[编辑] 说明

此函数返回指向静态数据的指针,并且不是线程安全的。此外,它会修改静态 std::tm 对象,该对象可能与 std::gmtimestd::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