定义于头文件
<ctime>
|
||
char* asctime( const std::tm* time_ptr );
|
||
转换给定日历时间 std::tm 为拥有下列固定 25 字符形式的文本表示: Www Mmm dd hh:mm:ss yyyy\n
Www
——星期之日的三字母英文缩写,来自 time_ptr->tm_wday ,为 Mon
、 Tue
、 Wed
、 Thu
、 Fri
、 Sat
、 Sun
之一。
Mmm
——月名的三字母英文缩写,来自 time_ptr->tm_mon ,为 Jan
、 Feb
、 Mar
、 Apr
、 May
、 Jun
、 Jul
、 Aug
、 Sep
、 Oct
、 Nov
、 Dec
之一。
dd
—— 2 位数月之日 ,来自 timeptr->tm_mday ,如同 sprintf 用 %2d 打印
hh
—— 2 位小时,来自 timeptr->tm_hour ,如同 sprintf 用 %.2d 打印
mm
—— 2 位分,来自 timeptr->tm_min ,如同 sprintf 用 %.2d 打印
ss
—— 2 位秒,来自 timeptr->tm_sec ,如同 sprintf 用 %.2d 打印
yyyy
—— 4 位年,来自 timeptr->tm_year + 1900 ,如同 sprintf 用 %4d 打印
若 *time_ptr 的任何成员在其正常范围外,则行为未定义。
若 time_ptr->tm_year 所指示的日历年份多于 4 位数字或小于 1000 年,则行为未定义。
函数不支持本地化,而写不能移除换行符。
函数修改静态存储,而且不是线程安全的。
目录 |
time_ptr | - | 指向指定要打印时间的 std::tm 对象的指针 |
指向空终止字符串的指针,字符串保有日期和时间的文本表示。字符串可能在 std::asctime
与 std::ctime 之间共享,而且可能在每次调用任何这些函数时被重写。
此函数返回指向静态数据的指针,且非线程安全。 POSIX 标记此函数为过时,并推荐使用 std::strftime 替代。
POSIX 限制了仅当输出字符串将长于 25 字符时、 timeptr->tm_wday
或 timeptr->tm_mon
不在预期范围时,或 timeptr->tm_year
超过 INT_MAX-1990 时是未定义行为。
一些实现把 timeptr->tm_mday==0 处理成上个月最后一天的含义。
#include <ctime> #include <iostream> int main() { std::time_t result = std::time(NULL); std::cout << std::asctime(std::localtime(&result)); }
输出:
Mon Apr 3 20:26:26 2017
转换 time_t 对象为文本表示 (函数) |
|
转换 tm 对象到自定义的文本表示 (函数) |
|
(C++11)
|
按照指定格式格式化并输出日期/时间值 (函数模板) |
asctime的 C 文档
|