asctime()函数:
asctime()函数在time.h头文件中定义。此函数将指针返回到包含包含存储在指向struct tm类型的结构中的信息的字符串。该函数用于返回系统定义的本地时间。
用法:
char *asctime(const struct tm* tm_ptr);
参数:此函数接受单个参数time_ptr,即指向要转换的tm对象的指针。
返回类型:此函数以“ Www Mmm dd hh:mm:ss yyyy”的形式返回日历时间,其中:
- Www:代表以三个字母缩写的日期(星期一,星期二,星期三。,)
- Mmm:代表以三个字母缩写的月份(1月,2月,3月,。)
- dd:以两位数字表示日期(01,02,10,21,31 ..,)
- hh:代表小时(11、12、13、22…,)
- mm:代表分钟(10、11、12、45…,)
- ss:代表秒(10,20,30…,)
- yyyy:用四位数字表示年份(2000、2001、2019、2020…,)
下面的程序演示了C中的asctime()函数:
// C program to demonstrate
// the asctime() function
#include <stdio.h>
#include <time.h>
int main()
{
struct tm* ptr;
time_t lt;
lt = time(NULL);
ptr = localtime(<);
// using the asctime() function
printf("%s", asctime(ptr));
return 0;
}
输出:
Wed Aug 14 04:21:25 2019
asctime_s()函数:
此函数用于将给定的日历时间转换为文本表示形式。我们无法在asctime()函数中修改输出日历时间,而可以在asctime_s()函数中修改日历时间。 asctime_s的一般语法为“ Www Mmm dd hh:mm:ss yyyy”。
用法:
errno_t asctime_s(char *buf, rsize_t bufsz, const struct tm *time_ptr)
参数:此函数接受三个参数:
- time_ptr:指向指定打印时间的tm对象的指针
- buf:指向用户提供的缓冲区的指针,长度至少26个字节
- bufsz:用户提供的缓冲区的大小
返回值:该函数返回指向以空值结尾的静态字符串的指针,该字符串包含日期和时间的文本表示形式。原始日历时间将从asctime()函数获得。
注意:在某些C-compilers中,将不支持asctime_s()。我们可以使用strftime()函数代替asctime_s()函数。
下面的程序研究C语言中的asctime_s()函数:
// __STDC_WANT_LIB_EXT1__ is a User defined
// standard to get astime_s() function to work
#define __STDC_WANT_LIB_EXT1__ 1
#include <stdio.h>
#include <time.h>
int main(void)
{
struct tm tm
= *localtime(&(time_t){ time(NULL) });
printf("%s", asctime(&tm));
// Calling C-standard to execute
// asctime_s() function
#ifdef __STDC_LIB_EXT1__
char str[50];
// Using the asctime_s() function
asctime_s(str, sizeof str, &tm);
// Print the current time
// using the asctime_s() function
printf("%s", str);
#endif
}
输出:
Wed Aug 14 04:33:54 2019
参考: https://en.cppreference.com/w/c/chrono/asctime
相关用法
注:本文由纯净天空筛选整理自avsadityavardhan大神的英文原创作品 asctime() and asctime_s() functions in C with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。