#C 语言标准库函数 asctime
/*********************************************
* @brief 将日历时间 struct tm 转换为文本
* @param timeptr 要被转换的时间
* @return 转换后的时间戳
********************************************/
char* asctime(const struct tm* timeptr);
说明
将日历时间从 tm 转换为文本形式,格式为 Www Mmm dd hh:mm:ss yyyy\n
(25 个字符)。
Www
- 三个字母形式的英文星期名:Mon, Tue, Wed, Thu, Fri, Sat, SunMmm
- 三个字母形式的英文月份名:Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Decdd
- 两个数字的日期hh
- 两个数字的小时(24 小时制)mm
- 两个数字的分ss
- 两个数字的秒yyyy
- 四个数字的年
这个函数在 C23 中已被废弃,建议使用 strftime 或 asctime_s 函数替代。
参数
timeptr
- 要被转换的日历时间
返回值
- 返回转换后的文本(指向静态数据的指针)
#示例
#include <stdio.h>
#include <time.h>
int main(void)
{
struct tm tm = {
.tm_year = 125, // 2025 年
.tm_mon = 4, // 5 月
.tm_mday = 15,
.tm_hour = 5,
.tm_min = 15,
.tm_sec = 55,
};
printf("%s", asctime(&tm));
return 0;
}
运行结果:
Sun May 15 05:15:55 2025
#推荐阅读
#参考标准
- C17 standard (ISO/IEC 9899:2018):
- 7.27.2.1 The asctime function (p: 287)
- C11 standard (ISO/IEC 9899:2011):
- 7.27.2.1 The asctime function (p: 392-393)
- C99 standard (ISO/IEC 9899:1999):
- 7.23.3.1 The asctime function (p: 341-342)
- C89/C90 standard (ISO/IEC 9899:1990):
- 4.12.3.1 The asctime function