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::gmtimestd::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)
按照指定格式格式化并输出日期/时间值
(函数模板)